agora-appbuilder-core 4.0.25 → 4.0.26-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-appbuilder-core",
3
- "version": "4.0.25",
3
+ "version": "4.0.26-beta-1",
4
4
  "description": "React Native template for RTE app builder",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -12,14 +12,9 @@
12
12
  import React from 'react';
13
13
  export type {ChatBubbleProps} from '../src/components/ChatContext';
14
14
  import {ChatBubbleProps} from '../src/components/ChatContext';
15
- import {
16
- ContentInterface,
17
- ContentStateInterface,
18
- UidType,
19
- } from '../agora-rn-uikit';
15
+ import {ContentStateInterface} from '../agora-rn-uikit';
20
16
  import {I18nInterface} from '../src/language/i18nTypes';
21
- import {IconsInterface} from '../src/atoms/CustomIcon';
22
- import {ToolbarCustomItem} from './sub-components';
17
+ import {ToolbarPresetProps} from './sub-components';
23
18
  import {TextDataInterface} from '../src/language/default-labels';
24
19
  import {VBPanelProps} from '../src/components/virtual-background/VBPanel';
25
20
 
@@ -60,7 +55,7 @@ export interface LayoutItem {
60
55
  component: LayoutComponent;
61
56
  }
62
57
 
63
- export type ToolbarType = React.ComponentType | Array<ToolbarCustomItem>;
58
+ export type ToolbarType = React.ComponentType | ToolbarPresetProps['items'];
64
59
  export type CustomLogger = (
65
60
  message: string,
66
61
  data: any,
@@ -35,4 +35,5 @@ export {default as useLocalAudio} from '../src/utils/useLocalAudio';
35
35
  export {default as useLocalVideo} from '../src/utils/useLocalVideo';
36
36
  export type {LanguageType} from '../src/subComponents/caption/utils';
37
37
  export {default as useSpeechToText} from '../src/utils/useSpeechToText';
38
+ export {isMobileUA} from '../src/utils/common';
38
39
  export {getSessionId} from '../src/utils/common';
@@ -1,64 +1,64 @@
1
1
  const DefaultConfig = {
2
- PROJECT_ID: '',
3
- APP_ID: '',
4
- PRODUCT_ID: 'helloworld',
5
- APP_NAME: 'HelloWorld',
6
- LOGO: 'data:image/png;base64,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',
7
- ICON: 'logoSquare.png',
8
- FRONTEND_ENDPOINT: '',
9
- BACKEND_ENDPOINT: 'https://managedservices-preprod.rteappbuilder.com',
2
+ PROJECT_ID: "",
3
+ APP_ID: "",
4
+ PRODUCT_ID: "helloworld",
5
+ APP_NAME: "HelloWorld",
6
+ LOGO: "data:image/png;base64,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",
7
+ ICON: "logoSquare.png",
8
+ FRONTEND_ENDPOINT: "",
9
+ BACKEND_ENDPOINT: "https://managedservices-preprod.rteappbuilder.com",
10
10
  PSTN: false,
11
11
  PRECALL: true,
12
12
  CHAT: true,
13
13
  CLOUD_RECORDING: false,
14
- RECORDING_MODE: 'WEB',
14
+ RECORDING_MODE: "WEB",
15
15
  SCREEN_SHARING: true,
16
- LANDING_SUB_HEADING: 'The Real-Time Engagement Platform',
16
+ LANDING_SUB_HEADING: "The Real-Time Engagement Platform",
17
17
  ENCRYPTION_ENABLED: false,
18
18
  ENABLE_GOOGLE_OAUTH: false,
19
19
  ENABLE_APPLE_OAUTH: false,
20
20
  ENABLE_SLACK_OAUTH: false,
21
21
  ENABLE_MICROSOFT_OAUTH: false,
22
- GOOGLE_CLIENT_ID: '',
23
- MICROSOFT_CLIENT_ID: '',
24
- SLACK_CLIENT_ID: '',
25
- APPLE_CLIENT_ID: '',
22
+ GOOGLE_CLIENT_ID: "",
23
+ MICROSOFT_CLIENT_ID: "",
24
+ SLACK_CLIENT_ID: "",
25
+ APPLE_CLIENT_ID: "",
26
26
  GEO_FENCING: true,
27
- GEO_FENCING_INCLUDE_AREA: 'GLOBAL',
28
- GEO_FENCING_EXCLUDE_AREA: '',
27
+ GEO_FENCING_INCLUDE_AREA: "GLOBAL",
28
+ GEO_FENCING_EXCLUDE_AREA: "",
29
29
  LOG_ENABLED: true,
30
30
  EVENT_MODE: false,
31
31
  RAISE_HAND: false,
32
32
  AUDIO_ROOM: false,
33
- BG: '',
34
- PRIMARY_FONT_COLOR: '#363636',
35
- SECONDARY_FONT_COLOR: '#FFFFFF',
36
- PROFILE: '720p_3',
37
- SCREEN_SHARE_PROFILE: '1080p_2',
33
+ BG: "",
34
+ PRIMARY_FONT_COLOR: "#363636",
35
+ SECONDARY_FONT_COLOR: "#FFFFFF",
36
+ PROFILE: "720p_3",
37
+ SCREEN_SHARE_PROFILE: "1080p_2",
38
38
  ICON_TEXT: true,
39
- PRIMARY_ACTION_BRAND_COLOR: '#099DFD',
40
- PRIMARY_ACTION_TEXT_COLOR: '#FFFFFF',
41
- SECONDARY_ACTION_COLOR: '#FFFFFF',
42
- FONT_COLOR: '#FFFFFF',
43
- BACKGROUND_COLOR: '#111111',
44
- VIDEO_AUDIO_TILE_COLOR: '#222222',
45
- VIDEO_AUDIO_TILE_OVERLAY_COLOR: '#000004',
46
- VIDEO_AUDIO_TILE_TEXT_COLOR: '#FFFFFF',
47
- VIDEO_AUDIO_TILE_AVATAR_COLOR: '#BDD0DB',
48
- SEMANTIC_ERROR: '#FF414D',
49
- SEMANTIC_SUCCESS: '#36B37E',
50
- SEMANTIC_WARNING: '#FFAB00',
51
- SEMANTIC_NEUTRAL: '#808080',
52
- INPUT_FIELD_BACKGROUND_COLOR: '#181818',
53
- INPUT_FIELD_BORDER_COLOR: '#262626',
54
- CARD_LAYER_1_COLOR: '#1D1D1D',
55
- CARD_LAYER_2_COLOR: '#262626',
56
- CARD_LAYER_3_COLOR: '#2D2D2D',
57
- CARD_LAYER_4_COLOR: '#333333',
58
- CARD_LAYER_5_COLOR: '#808080',
59
- HARD_CODED_BLACK_COLOR: '#000000',
60
- ICON_BG_COLOR: '#242529',
61
- TOOLBAR_COLOR: '#111111',
39
+ PRIMARY_ACTION_BRAND_COLOR: "#099DFD",
40
+ PRIMARY_ACTION_TEXT_COLOR: "#FFFFFF",
41
+ SECONDARY_ACTION_COLOR: "#FFFFFF",
42
+ FONT_COLOR: "#FFFFFF",
43
+ BACKGROUND_COLOR: "#111111",
44
+ VIDEO_AUDIO_TILE_COLOR: "#222222",
45
+ VIDEO_AUDIO_TILE_OVERLAY_COLOR: "#000004",
46
+ VIDEO_AUDIO_TILE_TEXT_COLOR: "#FFFFFF",
47
+ VIDEO_AUDIO_TILE_AVATAR_COLOR: "#BDD0DB",
48
+ SEMANTIC_ERROR: "#FF414D",
49
+ SEMANTIC_SUCCESS: "#36B37E",
50
+ SEMANTIC_WARNING: "#FFAB00",
51
+ SEMANTIC_NEUTRAL: "#808080",
52
+ INPUT_FIELD_BACKGROUND_COLOR: "#181818",
53
+ INPUT_FIELD_BORDER_COLOR: "#262626",
54
+ CARD_LAYER_1_COLOR: "#1D1D1D",
55
+ CARD_LAYER_2_COLOR: "#262626",
56
+ CARD_LAYER_3_COLOR: "#2D2D2D",
57
+ CARD_LAYER_4_COLOR: "#333333",
58
+ CARD_LAYER_5_COLOR: "#808080",
59
+ HARD_CODED_BLACK_COLOR: "#000000",
60
+ ICON_BG_COLOR: "#242529",
61
+ TOOLBAR_COLOR: "#111111",
62
62
  ACTIVE_SPEAKER: true,
63
63
  ENABLE_IDP_AUTH: false,
64
64
  ENABLE_TOKEN_AUTH: false,
@@ -70,14 +70,14 @@ const DefaultConfig = {
70
70
  ENABLE_WHITEBOARD: false,
71
71
  ENABLE_WHITEBOARD_FILE_UPLOAD: false,
72
72
  ENABLE_WAITING_ROOM: false,
73
- WHITEBOARD_APPIDENTIFIER: '',
74
- WHITEBOARD_REGION: '',
73
+ WHITEBOARD_APPIDENTIFIER: "",
74
+ WHITEBOARD_REGION: "",
75
75
  ENABLE_NOISE_CANCELLATION_BY_DEFAULT: false,
76
- CHAT_ORG_NAME: '',
77
- CHAT_APP_NAME: '',
78
- CHAT_URL: '',
79
- CLI_VERSION: '3.0.25',
80
- CORE_VERSION: '4.0.25',
76
+ CHAT_ORG_NAME: "",
77
+ CHAT_APP_NAME: "",
78
+ CHAT_URL: "",
79
+ CLI_VERSION: "3.0.25",
80
+ CORE_VERSION: "4.0.25",
81
81
  };
82
82
 
83
83
  module.exports = DefaultConfig;
@@ -86,7 +86,7 @@ const AppWrapper = (props: AppWrapperProps) => {
86
86
  // @ts-ignore textAlign not supported by TS definitions but is applied to web regardless
87
87
  style={[{flex: 1}, Platform.select({web: {textAlign: 'left'}})]}>
88
88
  <StatusBar hidden={true} />
89
- <BlockUI />
89
+ {/* <BlockUI /> */}
90
90
  <StorageProvider>
91
91
  <LanguageProvider>
92
92
  <GraphQLProvider>
@@ -8,6 +8,7 @@ import {
8
8
  Image,
9
9
  TouchableOpacity,
10
10
  ViewStyle,
11
+ useWindowDimensions,
11
12
  } from 'react-native';
12
13
  import React, {SetStateAction, useState} from 'react';
13
14
 
@@ -17,8 +18,12 @@ import ThemeConfig from '../theme';
17
18
  import {isWebInternal} from '../utils/common';
18
19
  import hexadecimalTransparency from '../utils/hexadecimalTransparency';
19
20
  import Toggle from './Toggle';
21
+ import {Either} from '../../agora-rn-uikit/src/Controls/types';
22
+ import {ToolbarItemHide, ToolbarMoreMenuCustomItem} from './ToolbarPreset';
20
23
 
21
24
  export interface ActionMenuItem {
25
+ componentName?: string;
26
+ order?: number;
22
27
  isExternalIcon?: boolean;
23
28
  externalIconString?: string;
24
29
  isBase64Icon?: boolean;
@@ -33,6 +38,7 @@ export interface ActionMenuItem {
33
38
  onHoverContent?: JSX.Element;
34
39
  disabled?: boolean;
35
40
  iconSize?: number;
41
+ hide?: ToolbarItemHide;
36
42
  }
37
43
  export interface ActionMenuProps {
38
44
  from: string;
@@ -44,7 +50,7 @@ export interface ActionMenuProps {
44
50
  left?: number;
45
51
  bottom?: number;
46
52
  };
47
- items: ActionMenuItem[];
53
+ items: Either<ActionMenuItem[], ToolbarMoreMenuCustomItem[]>;
48
54
  hoverMode?: boolean;
49
55
  onHover?: (hover: boolean) => void;
50
56
  containerStyle?: ViewStyle;
@@ -58,28 +64,87 @@ const ActionMenu = (props: ActionMenuProps) => {
58
64
  items,
59
65
  hoverMode = false,
60
66
  } = props;
67
+ const {width, height} = useWindowDimensions();
61
68
 
62
69
  const renderItems = () => {
63
- return items?.map(
64
- (
65
- {
66
- icon = '',
67
- onHoverIcon,
68
- isBase64Icon = false,
69
- isExternalIcon = false,
70
- externalIconString = '',
71
- title,
72
- toggleStatus,
73
- callback,
74
- iconColor,
75
- textColor,
76
- disabled = false,
77
- onHoverCallback = undefined,
78
- onHoverContent = undefined,
79
- iconSize = 20,
80
- },
81
- index,
82
- ) => (
70
+ return items?.map((item, index) => {
71
+ //rendering the custom item with default UI
72
+ const {title, onPress, iconBase64, componentName, hide = false} = item;
73
+
74
+ if (typeof hide === 'boolean' && hide) {
75
+ return null;
76
+ }
77
+
78
+ try {
79
+ if (typeof hide === 'function' && hide && hide(width, height)) {
80
+ return null;
81
+ }
82
+ } catch (error) {}
83
+
84
+ if (title && onPress) {
85
+ return (
86
+ <PlatformWrapper key={props.from + '_' + componentName + index}>
87
+ {(isHovered: boolean) => (
88
+ <>
89
+ <TouchableOpacity
90
+ disabled={false}
91
+ style={[
92
+ styles.row,
93
+ isHovered && !false
94
+ ? //first item should have border-radius on top left and top right
95
+ index === 0
96
+ ? styles.rowHoveredFirstChild
97
+ : //last item should have border-radius on bottom left and top right
98
+ items?.length - 1 === index
99
+ ? styles.rowHoveredLastChild
100
+ : //middle items don't need any border-radius
101
+ styles.rowHoveredMiddleItems
102
+ : {},
103
+ false ? {opacity: 0.4} : {},
104
+ items?.length - 1 === index
105
+ ? {borderBottomColor: 'transparent'}
106
+ : {},
107
+ ]}
108
+ onPress={onPress}
109
+ key={componentName + index}>
110
+ {iconBase64 ? (
111
+ <View style={styles.iconContainer}>
112
+ <ImageIcon
113
+ base64={false}
114
+ base64TintColor={$config.SECONDARY_ACTION_COLOR}
115
+ iconType="plain"
116
+ iconSize={24}
117
+ icon={iconBase64}
118
+ tintColor={$config.SECONDARY_ACTION_COLOR}
119
+ />
120
+ </View>
121
+ ) : (
122
+ <></>
123
+ )}
124
+ <Text style={[styles.text]}>{title}</Text>
125
+ </TouchableOpacity>
126
+ </>
127
+ )}
128
+ </PlatformWrapper>
129
+ );
130
+ }
131
+
132
+ const {
133
+ icon = '',
134
+ onHoverIcon,
135
+ isBase64Icon = false,
136
+ isExternalIcon = false,
137
+ externalIconString = '',
138
+ toggleStatus,
139
+ callback,
140
+ iconColor,
141
+ textColor,
142
+ disabled = false,
143
+ onHoverCallback = undefined,
144
+ onHoverContent = undefined,
145
+ iconSize = 20,
146
+ } = item;
147
+ return (
83
148
  <PlatformWrapper key={props.from + '_' + title + index}>
84
149
  {(isHovered: boolean) => (
85
150
  <>
@@ -150,8 +215,8 @@ const ActionMenu = (props: ActionMenuProps) => {
150
215
  </>
151
216
  )}
152
217
  </PlatformWrapper>
153
- ),
154
- );
218
+ );
219
+ });
155
220
  };
156
221
 
157
222
  return (
@@ -10,9 +10,10 @@ interface CarouselItem {
10
10
 
11
11
  interface CarouselProps {
12
12
  data: CarouselItem[];
13
+ isPaginationRequired?: boolean;
13
14
  }
14
15
 
15
- const Carousel: React.FC<CarouselProps> = ({data}) => {
16
+ const Carousel: React.FC<CarouselProps> = ({data, isPaginationRequired}) => {
16
17
  const [activeIndex, setActiveIndex] = useState(0);
17
18
 
18
19
  const flatListRef = React.useRef<FlatList | null>(null);
@@ -36,7 +37,8 @@ const Carousel: React.FC<CarouselProps> = ({data}) => {
36
37
  };
37
38
 
38
39
  return (
39
- <View style={styles.container}>
40
+ <View
41
+ style={[styles.container, !isPaginationRequired ? {paddingTop: 24} : {}]}>
40
42
  <FlatList
41
43
  ref={flatListRef}
42
44
  data={data}
@@ -47,28 +49,32 @@ const Carousel: React.FC<CarouselProps> = ({data}) => {
47
49
  keyExtractor={(_, index) => index.toString()}
48
50
  onScroll={handleScroll}
49
51
  />
50
- <View style={styles.indicatorContainer}>
51
- {data.map((_, index) => (
52
- <Pressable
53
- key={index}
54
- onPress={() => {
55
- scrollToIndex(index);
56
- setActiveIndex(index);
57
- }}
58
- hitSlop={5} // to increase clickable area
59
- >
60
- {({pressed}) => (
61
- <View
62
- style={[
63
- styles.dot,
64
- index === activeIndex && styles.activeDot,
65
- pressed && styles.pressedDot,
66
- ]}
67
- />
68
- )}
69
- </Pressable>
70
- ))}
71
- </View>
52
+ {isPaginationRequired ? (
53
+ <View style={styles.indicatorContainer}>
54
+ {data.map((_, index) => (
55
+ <Pressable
56
+ key={index}
57
+ onPress={() => {
58
+ scrollToIndex(index);
59
+ setActiveIndex(index);
60
+ }}
61
+ hitSlop={5} // to increase clickable area
62
+ >
63
+ {({pressed}) => (
64
+ <View
65
+ style={[
66
+ styles.dot,
67
+ index === activeIndex && styles.activeDot,
68
+ pressed && styles.pressedDot,
69
+ ]}
70
+ />
71
+ )}
72
+ </Pressable>
73
+ ))}
74
+ </View>
75
+ ) : (
76
+ <></>
77
+ )}
72
78
  </View>
73
79
  );
74
80
  };
@@ -2,16 +2,8 @@ import React from 'react';
2
2
  import {View, StyleSheet} from 'react-native';
3
3
  import {useToolbar, ToolbarPosition} from '../utils/useToolbar';
4
4
  import {isMobileUA, isWebInternal, useIsDesktop} from '../utils/common';
5
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
6
- import {ToolbarCustomItem} from './ToolbarPreset';
7
5
  import ActionSheet from '../pages/video-call/ActionSheet';
8
6
 
9
- // export interface ToolbarProps {
10
- // children: React.ReactNode;
11
- // bottomSheetOnMobile?: boolean;
12
- // customItems?: ToolbarCustomItem[];
13
- // }
14
-
15
7
  export interface ToolbarPropsBase {
16
8
  children: React.ReactNode;
17
9
  }
@@ -7,9 +7,22 @@ import {isMobileUA} from '../utils/common';
7
7
  import NavbarMobile from '../components/NavbarMobile';
8
8
  import ActionSheet from '../pages/video-call/ActionSheet';
9
9
 
10
- export type ToolbarDefaultItemName =
11
- //bottom bar
10
+ export type MoreButtonDefaultKeys =
11
+ | 'virtual-background'
12
+ | 'noise-cancellation'
13
+ | 'caption'
14
+ | 'transcript'
15
+ | 'view-recordings'
16
+ | 'whiteboard'
17
+ | 'chat'
18
+ | 'participant'
19
+ | 'settings'
20
+ | 'layout'
21
+ | 'invite'
22
+ | 'screenshare'
23
+ | 'recording';
12
24
 
25
+ export type BottomToolbarDefaultKeys =
13
26
  //left
14
27
  | 'layout'
15
28
  | 'invite'
@@ -21,8 +34,9 @@ export type ToolbarDefaultItemName =
21
34
  | 'switch-camera'
22
35
  | 'end-call'
23
36
  | 'raise-hand'
24
- | 'more'
37
+ | 'more';
25
38
 
39
+ export type TopToolbarDefaultKeys =
26
40
  //topbar
27
41
  | 'meeting-title'
28
42
  | 'participant-count'
@@ -31,12 +45,16 @@ export type ToolbarDefaultItemName =
31
45
  | 'participant'
32
46
  | 'settings';
33
47
 
34
- export type ToolbarDefaultItemConfig = {
35
- [key in ToolbarDefaultItemName]?: ToolbarDefaultItem;
48
+ export type ToolbarMoreButtonFields = {
49
+ [key in MoreButtonDefaultKeys]?: {
50
+ hide?: ToolbarItemHide;
51
+ order?: number;
52
+ };
36
53
  };
37
54
 
38
55
  export type ToolbarItemAlign = 'start' | 'center' | 'end';
39
- export type ToolbarItemHide = 'yes' | 'no';
56
+ export type ToolbarHideCallback = (width: number, height: number) => boolean;
57
+ export type ToolbarItemHide = boolean | ToolbarHideCallback;
40
58
 
41
59
  export interface ToolbarDefaultItem {
42
60
  component?: () => JSX.Element;
@@ -44,31 +62,62 @@ export interface ToolbarDefaultItem {
44
62
  hide?: ToolbarItemHide;
45
63
  order?: number;
46
64
  }
47
-
48
- export interface ToolbarCustomItem {
49
- component: () => JSX.Element;
50
- align: ToolbarItemAlign;
51
- hide: ToolbarItemHide;
52
- order?: number;
65
+ export interface ToolbarMoreDefaultItem extends ToolbarDefaultItem {
66
+ fields?: ToolbarMoreButtonFields;
53
67
  }
68
+
54
69
  export type ToolbarPresetAlign = 'top' | 'bottom' | 'right' | 'left';
55
70
 
71
+ export interface ToolbarMoreMenuCustomItem {
72
+ componentName: string;
73
+ title: string;
74
+ onPress: () => void;
75
+ iconBase64?: string;
76
+ hide?: ToolbarItemHide;
77
+ order?: number;
78
+ }
56
79
  export interface ToolbarBottomPresetProps {
57
- align: ToolbarPresetAlign;
58
- customItems?: Array<ToolbarCustomItem>;
59
- defaultItemsConfig?: ToolbarDefaultItemConfig;
60
- snapPointsMinMax: [number, number];
80
+ align: 'bottom';
81
+ items?:
82
+ | {
83
+ [key: string]: ToolbarDefaultItem;
84
+ }
85
+ | {
86
+ ['more']?: ToolbarMoreDefaultItem;
87
+ }
88
+ | {
89
+ [key in BottomToolbarDefaultKeys]?: ToolbarDefaultItem;
90
+ };
91
+ snapPointsMinMax?: [number, number];
61
92
  }
62
- export interface ToolbarOtherPresetProps {
63
- align: ToolbarPresetAlign;
64
- customItems?: Array<ToolbarCustomItem>;
65
- defaultItemsConfig?: ToolbarDefaultItemConfig;
66
- snapPointsMinMax?: never;
93
+ export interface ToolbarTopPresetProps {
94
+ align: 'top';
95
+ items?:
96
+ | {
97
+ [key in TopToolbarDefaultKeys]?: ToolbarDefaultItem;
98
+ }
99
+ | {
100
+ [key: string]: ToolbarDefaultItem;
101
+ };
102
+ }
103
+ export interface ToolbarRightPresetProps {
104
+ align: 'right';
105
+ items?: {
106
+ [key in TopToolbarDefaultKeys]?: ToolbarDefaultItem;
107
+ };
108
+ }
109
+ export interface ToolbarLeftPresetProps {
110
+ align: 'left';
111
+ items?: {
112
+ [key in TopToolbarDefaultKeys]?: ToolbarDefaultItem;
113
+ };
67
114
  }
68
115
 
69
116
  export type ToolbarPresetProps =
70
117
  | ToolbarBottomPresetProps
71
- | ToolbarOtherPresetProps;
118
+ | ToolbarTopPresetProps
119
+ | ToolbarLeftPresetProps
120
+ | ToolbarRightPresetProps;
72
121
 
73
122
  const ToolbarPreset = (props: ToolbarPresetProps) => {
74
123
  const {align} = props;
@@ -79,41 +128,24 @@ const ToolbarPreset = (props: ToolbarPresetProps) => {
79
128
  return null;
80
129
  }
81
130
  if (align === 'left') {
82
- return (
83
- <Leftbar customItems={props?.customItems} includeDefaultItems={true} />
84
- );
131
+ return <Leftbar items={props?.items} includeDefaultItems={true} />;
85
132
  } else if (align === 'right') {
86
- return (
87
- <Rightbar customItems={props?.customItems} includeDefaultItems={true} />
88
- );
133
+ return <Rightbar items={props?.items} includeDefaultItems={true} />;
89
134
  } else if (align === 'top') {
90
135
  return isMobileUA() ? (
91
- <NavbarMobile
92
- customItems={props?.customItems}
93
- includeDefaultItems={true}
94
- defaultItemsConfig={props?.defaultItemsConfig}
95
- />
136
+ <NavbarMobile items={props?.items} includeDefaultItems={true} />
96
137
  ) : (
97
- <Navbar
98
- customItems={props?.customItems}
99
- includeDefaultItems={true}
100
- defaultItemsConfig={props?.defaultItemsConfig}
101
- />
138
+ <Navbar items={props?.items} includeDefaultItems={true} />
102
139
  );
103
140
  } else if (align === 'bottom') {
104
141
  return isMobileUA() ? (
105
142
  <ActionSheet
106
- customItems={props?.customItems}
143
+ items={props?.items}
107
144
  includeDefaultItems={true}
108
145
  snapPointsMinMax={props?.snapPointsMinMax}
109
- defaultItemsConfig={props?.defaultItemsConfig}
110
146
  />
111
147
  ) : (
112
- <Controls
113
- customItems={props?.customItems}
114
- includeDefaultItems={true}
115
- defaultItemsConfig={props?.defaultItemsConfig}
116
- />
148
+ <Controls items={props?.items} includeDefaultItems={true} />
117
149
  );
118
150
  } else {
119
151
  return null;