agora-appbuilder-core 3.0.10 → 3.0.11

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.
Files changed (248) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4719 -5862
  4. package/template/agora-rn-uikit/src/Contexts/LocalUserContext.tsx +0 -4
  5. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +0 -18
  6. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +0 -2
  7. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +26 -30
  8. package/template/agora-rn-uikit/src/Controls/Icons.ts +83 -30
  9. package/template/agora-rn-uikit/src/Controls/ImageIcon.tsx +6 -6
  10. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +0 -1
  11. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +0 -1
  12. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +0 -1
  13. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +0 -1
  14. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +0 -1
  15. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +0 -2
  16. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +0 -1
  17. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +0 -1
  18. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +0 -1
  19. package/template/agora-rn-uikit/src/Reducer/index.ts +0 -3
  20. package/template/agora-rn-uikit/src/Rtc/Create.tsx +1 -89
  21. package/template/agora-rn-uikit/src/RtcConfigure.tsx +2 -39
  22. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +5 -15
  23. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +9 -15
  24. package/template/agora-rn-uikit/src/index.ts +1 -3
  25. package/template/android/app/build.gradle +0 -1
  26. package/template/android/app/src/main/AndroidManifest.xml +15 -22
  27. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +0 -50
  28. package/template/android/build.gradle +3 -3
  29. package/template/babel.config.js +0 -1
  30. package/template/bridge/rtc/webNg/RtcEngine.ts +17 -110
  31. package/template/customization-api/sub-components.ts +1 -1
  32. package/template/customization-api/typeDefinition.ts +1 -2
  33. package/template/electron/index.html +27 -27
  34. package/template/electron/renderer/index.js +0 -1
  35. package/template/global.d.ts +4 -25
  36. package/template/index.rsdk.tsx +0 -1
  37. package/template/index.web.js +1 -2
  38. package/template/index.wsdk.tsx +1 -1
  39. package/template/ios/HelloWorld/Info.plist +1 -14
  40. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  41. package/template/metro.config.js +1 -1
  42. package/template/package.json +7 -18
  43. package/template/react-native-toast-message/index.d.ts +43 -43
  44. package/template/react-native-toast-message/src/colors/index.js +2 -3
  45. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  46. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  47. package/template/react-native-toast-message/src/components/error.js +2 -3
  48. package/template/react-native-toast-message/src/components/info.js +2 -3
  49. package/template/react-native-toast-message/src/components/success.js +2 -3
  50. package/template/react-native-toast-message/src/index.js +31 -122
  51. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  52. package/template/react-native-toast-message/src/styles.js +4 -3
  53. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  54. package/template/src/App.tsx +0 -6
  55. package/template/src/AppWrapper.tsx +28 -63
  56. package/template/src/assets/icons.ts +102 -0
  57. package/template/src/atoms/HorizontalRule.tsx +1 -3
  58. package/template/src/atoms/PrimaryButton.tsx +26 -51
  59. package/template/src/atoms/SecondaryButton.tsx +5 -8
  60. package/template/src/atoms/TextInput.tsx +14 -12
  61. package/template/src/components/Chat.tsx +214 -86
  62. package/template/src/components/ChatContext.ts +1 -8
  63. package/template/src/components/ColorConfigure.tsx +1 -1
  64. package/template/src/components/ColorContext.ts +1 -1
  65. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  66. package/template/src/components/Controls.tsx +42 -342
  67. package/template/src/components/DeviceConfigure.tsx +101 -461
  68. package/template/src/components/DeviceContext.tsx +4 -8
  69. package/template/src/components/EventsConfigure.tsx +7 -144
  70. package/template/src/components/GraphQLProvider.tsx +1 -1
  71. package/template/src/components/GridVideo.tsx +44 -59
  72. package/template/src/components/HostControlView.tsx +35 -114
  73. package/template/src/components/Navbar.tsx +398 -216
  74. package/template/src/components/NetworkQualityContext.tsx +20 -20
  75. package/template/src/components/ParticipantsView.tsx +154 -177
  76. package/template/src/components/PinnedVideo.tsx +120 -207
  77. package/template/src/components/Precall.native.tsx +119 -358
  78. package/template/src/components/Precall.tsx +135 -269
  79. package/template/src/components/RTMConfigure.tsx +4 -27
  80. package/template/src/components/Router.electron.ts +0 -1
  81. package/template/src/components/Router.native.ts +0 -1
  82. package/template/src/components/Router.sdk.ts +0 -1
  83. package/template/src/components/Router.ts +0 -1
  84. package/template/src/components/Settings.tsx +95 -26
  85. package/template/src/components/SettingsView.tsx +56 -251
  86. package/template/src/components/Share.tsx +273 -302
  87. package/template/src/components/StorageContext.tsx +3 -30
  88. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  89. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  90. package/template/src/components/common/Error.tsx +6 -20
  91. package/template/src/components/common/Logo.tsx +15 -16
  92. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  93. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  94. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  95. package/template/src/components/livestream/Types.ts +14 -39
  96. package/template/src/components/livestream/index.ts +0 -1
  97. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  98. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  99. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  100. package/template/src/components/participants/MeParticipant.tsx +38 -0
  101. package/template/src/components/participants/ParticipantName.tsx +7 -13
  102. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  103. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  104. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  105. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  106. package/template/src/components/precall/LocalMute.tsx +14 -84
  107. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  108. package/template/src/components/precall/VideoPreview.tsx +7 -163
  109. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  110. package/template/src/components/precall/meetingTitle.tsx +12 -15
  111. package/template/src/components/precall/selectDevice.tsx +21 -1
  112. package/template/src/components/precall/textInput.tsx +4 -32
  113. package/template/src/components/precall/usePreCall.tsx +0 -16
  114. package/template/src/components/styles.ts +21 -42
  115. package/template/src/components/useShareLink.tsx +14 -12
  116. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  117. package/template/src/pages/Authenticate.tsx +15 -5
  118. package/template/src/pages/Create.tsx +165 -293
  119. package/template/src/pages/Join.tsx +67 -93
  120. package/template/src/pages/VideoCall.tsx +64 -89
  121. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  122. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  123. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  124. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  125. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  126. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  127. package/template/src/rtm-events/constants.ts +0 -2
  128. package/template/src/subComponents/ChatBubble.tsx +83 -123
  129. package/template/src/subComponents/ChatContainer.tsx +84 -257
  130. package/template/src/subComponents/ChatInput.tsx +46 -61
  131. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  132. package/template/src/subComponents/Checkbox.tsx +2 -2
  133. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  134. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  135. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  136. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  137. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  138. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  139. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  140. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  141. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  142. package/template/src/subComponents/Logo.tsx +4 -3
  143. package/template/src/subComponents/LogoutButton.tsx +1 -1
  144. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  145. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  146. package/template/src/subComponents/Recording.tsx +29 -28
  147. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  148. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  149. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  150. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  151. package/template/src/subComponents/SelectDevice.tsx +61 -404
  152. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  153. package/template/src/subComponents/ToastConfig.tsx +10 -150
  154. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  155. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  156. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  157. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  160. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  161. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  162. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  164. package/template/src/utils/common.tsx +1 -155
  165. package/template/src/utils/index.tsx +0 -19
  166. package/template/src/utils/isMobileOrTablet.ts +2 -7
  167. package/template/src/utils/useButtonTemplate.tsx +0 -1
  168. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  169. package/template/web/index.html +0 -5
  170. package/template/webpack.commons.js +8 -13
  171. package/template/webpack.web.config.js +0 -1
  172. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  173. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  174. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  175. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  176. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  177. package/template/android/app/src/main/res/values/colors.xml +0 -7
  178. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  179. package/template/react-native.config.js +0 -7
  180. package/template/src/assets/font-styles.css +0 -329
  181. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  182. package/template/src/assets/fonts/icomoon.ttf +0 -0
  183. package/template/src/assets/permission.png +0 -0
  184. package/template/src/assets/selection.json +0 -1
  185. package/template/src/atoms/ActionMenu.tsx +0 -236
  186. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  187. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  188. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  189. package/template/src/atoms/AnimatedRings.tsx +0 -70
  190. package/template/src/atoms/Card.tsx +0 -61
  191. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  192. package/template/src/atoms/CircularProgress.tsx +0 -102
  193. package/template/src/atoms/CustomIcon.tsx +0 -88
  194. package/template/src/atoms/CustomSwitch.tsx +0 -287
  195. package/template/src/atoms/Dropdown.tsx +0 -306
  196. package/template/src/atoms/IconButton.tsx +0 -162
  197. package/template/src/atoms/ImageIcon.tsx +0 -98
  198. package/template/src/atoms/InfoBubble.tsx +0 -291
  199. package/template/src/atoms/Input.tsx +0 -87
  200. package/template/src/atoms/InviteInfo.tsx +0 -166
  201. package/template/src/atoms/LinkButton.tsx +0 -28
  202. package/template/src/atoms/OutlineButton.tsx +0 -61
  203. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  204. package/template/src/atoms/Popup.tsx +0 -147
  205. package/template/src/atoms/RecordingInfo.tsx +0 -49
  206. package/template/src/atoms/Spacer.tsx +0 -22
  207. package/template/src/atoms/TertiaryButton.tsx +0 -78
  208. package/template/src/atoms/Toggle.tsx +0 -47
  209. package/template/src/atoms/Tooltip.native.tsx +0 -65
  210. package/template/src/atoms/Tooltip.tsx +0 -94
  211. package/template/src/atoms/UserAvatar.tsx +0 -60
  212. package/template/src/components/CommonStyles.ts +0 -44
  213. package/template/src/components/ToastComponent.tsx +0 -8
  214. package/template/src/components/participants/Participant.tsx +0 -302
  215. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  216. package/template/src/components/popups/InvitePopup.tsx +0 -115
  217. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  218. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  219. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  220. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  221. package/template/src/components/useToast.tsx +0 -41
  222. package/template/src/components/useVideoCall.tsx +0 -65
  223. package/template/src/pages/Endcall.tsx +0 -148
  224. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  225. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  226. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  227. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  228. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  229. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  230. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  231. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  232. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  233. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  234. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  235. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  236. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  237. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  238. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  239. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  240. package/template/src/theme/index.ts +0 -46
  241. package/template/src/utils/PlatformWrapper.tsx +0 -21
  242. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  243. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  244. package/template/src/utils/useFocus.tsx +0 -46
  245. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  246. package/template/src/utils/useIsHandRaised.ts +0 -13
  247. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  248. package/template/src/utils/useRemoteRequest.ts +0 -84
@@ -9,18 +9,16 @@
9
9
  information visit https://appbuilder.agora.io.
10
10
  *********************************************
11
11
  */
12
- import React, {useContext, useEffect, useRef} from 'react';
12
+ import React, {useContext} from 'react';
13
13
  import {View, TouchableOpacity, StyleSheet, Image} from 'react-native';
14
14
  import ColorContext from '../components/ColorContext';
15
15
  import TextInput from '../atoms/TextInput';
16
+ import icons from '../assets/icons';
16
17
  import {useString} from '../utils/useString';
17
18
  import {useChatMessages} from '../components/chat-messages/useChatMessages';
18
- import {isValidReactComponent, isWebInternal} from '../utils/common';
19
+ import {isValidReactComponent} from '../utils/common';
19
20
  import {useCustomization} from 'customization-implementation';
20
21
  import {useChatUIControl} from '../components/chat-ui/useChatUIControl';
21
- import {useRender, useUserName} from 'customization-api';
22
- import ImageIcon from '../atoms/ImageIcon';
23
- import ThemeConfig from '../theme';
24
22
 
25
23
  export interface ChatSendButtonProps {
26
24
  render?: (onPress: () => void) => JSX.Element;
@@ -31,7 +29,6 @@ export const ChatSendButton = (props: ChatSendButtonProps) => {
31
29
  selectedChatUserId: selectedUserId,
32
30
  message,
33
31
  setMessage,
34
- inputActive,
35
32
  } = useChatUIControl();
36
33
  const {sendChatMessage} = useChatMessages();
37
34
  const onPress = () => {
@@ -46,15 +43,13 @@ export const ChatSendButton = (props: ChatSendButtonProps) => {
46
43
  return props?.render ? (
47
44
  props.render(onPress)
48
45
  ) : (
49
- <TouchableOpacity style={[style.chatInputButton]} onPress={onPress}>
50
- <ImageIcon
51
- iconType="plain"
52
- tintColor={
53
- inputActive
54
- ? $config.PRIMARY_ACTION_BRAND_COLOR
55
- : $config.SEMANTIC_NEUTRAL
56
- }
57
- name={'send'}
46
+ <TouchableOpacity style={style.chatInputButton} onPress={onPress}>
47
+ <Image
48
+ source={{
49
+ uri: icons.send,
50
+ }}
51
+ style={style.chatInputButtonIcon}
52
+ resizeMode={'contain'}
58
53
  />
59
54
  </TouchableOpacity>
60
55
  );
@@ -68,24 +63,17 @@ export interface ChatTextInputProps {
68
63
  ) => JSX.Element;
69
64
  }
70
65
  export const ChatTextInput = (props: ChatTextInputProps) => {
71
- let chatInputRef = useRef(null);
72
66
  const {
73
67
  selectedChatUserId: selectedUserId,
74
68
  message,
75
69
  setMessage,
76
- inputActive,
77
- privateActive,
78
70
  } = useChatUIControl();
79
71
  const {sendChatMessage} = useChatMessages();
80
- const {renderList} = useRender();
81
72
  //commented for v1 release
82
73
  // const chatMessageInputPlaceholder = useString(
83
74
  // 'chatMessageInputPlaceholder',
84
75
  // )();
85
- const [name] = useUserName();
86
- const chatMessageInputPlaceholder = privateActive
87
- ? `Private Message to ${renderList[selectedUserId].name}`
88
- : `Chat publicly as ${name}...`;
76
+ const chatMessageInputPlaceholder = 'Type your message..';
89
77
  const onChangeText = (text: string) => setMessage(text);
90
78
  const onSubmitEditing = () => {
91
79
  if (!selectedUserId) {
@@ -96,15 +84,6 @@ export const ChatTextInput = (props: ChatTextInputProps) => {
96
84
  setMessage('');
97
85
  }
98
86
  };
99
- const {setInputActive} = useChatUIControl();
100
-
101
- useEffect(() => {
102
- setTimeout(() => {
103
- if (isWebInternal()) {
104
- chatInputRef?.current?.focus();
105
- }
106
- });
107
- }, []);
108
87
 
109
88
  return props?.render ? (
110
89
  props.render(
@@ -115,31 +94,23 @@ export const ChatTextInput = (props: ChatTextInputProps) => {
115
94
  )
116
95
  ) : (
117
96
  <TextInput
118
- setRef={(ref) => (chatInputRef.current = ref)}
119
- onFocus={() => setInputActive(true)}
120
- onBlur={() => setInputActive(false)}
121
97
  value={message}
122
98
  onChangeText={onChangeText}
123
99
  style={{
124
- minHeight: 56,
125
- borderRadius: 0,
126
- borderBottomLeftRadius: 12,
127
- borderWidth: 0,
128
- color: $config.FONT_COLOR,
100
+ borderRadius: 10,
101
+ backgroundColor: $config.PRIMARY_FONT_COLOR + '10',
102
+ borderWidth: 1,
103
+ color: $config.PRIMARY_FONT_COLOR,
129
104
  textAlign: 'left',
130
- paddingVertical: 21,
131
- paddingLeft: 20,
105
+ height: 40,
106
+ paddingVertical: 10,
132
107
  flex: 1,
133
108
  alignSelf: 'center',
134
- fontFamily: ThemeConfig.FontFamily.sansPro,
135
- fontWeight: '400',
136
109
  }}
137
110
  blurOnSubmit={false}
138
111
  onSubmitEditing={onSubmitEditing}
139
112
  placeholder={chatMessageInputPlaceholder}
140
- placeholderTextColor={
141
- $config.FONT_COLOR + ThemeConfig.EmphasisPlus.disabled
142
- }
113
+ placeholderTextColor={$config.PRIMARY_FONT_COLOR}
143
114
  autoCorrect={false}
144
115
  />
145
116
  );
@@ -205,10 +176,8 @@ const ChatInput = (props: {
205
176
  },
206
177
  );
207
178
 
208
- const {inputActive} = useChatUIControl();
209
-
210
179
  return (
211
- <View style={[style.inputView, inputActive ? style.inputActiveView : {}]}>
180
+ <View style={[style.inputView, {borderColor: primaryColor, height: 40}]}>
212
181
  <ChatInputComponent />
213
182
  <ChatSendButtonComponent />
214
183
  </View>
@@ -216,22 +185,38 @@ const ChatInput = (props: {
216
185
  };
217
186
 
218
187
  const style = StyleSheet.create({
219
- inputActiveView: {
220
- borderTopWidth: 1,
221
- borderTopColor: $config.PRIMARY_ACTION_BRAND_COLOR,
222
- },
223
188
  inputView: {
224
- flex: 1,
189
+ width: '95%',
225
190
  flexDirection: 'row',
226
- backgroundColor: $config.CARD_LAYER_2_COLOR,
227
- borderTopWidth: 1,
228
- borderTopColor: 'transparent',
191
+ marginHorizontal: 10,
192
+ paddingVertical: 15,
193
+ },
194
+ chatInput: {
195
+ flex: 1,
196
+ width: '100%',
197
+ backgroundColor: $config.PRIMARY_FONT_COLOR,
198
+ color: $config.PRIMARY_FONT_COLOR,
229
199
  },
230
200
  chatInputButton: {
231
- flex: 0.1,
232
- borderBottomRightRadius: 12,
201
+ width: 30,
202
+ marginRight: 0,
203
+ height: 30,
204
+ borderRadius: 30,
205
+ alignSelf: 'center',
206
+ marginHorizontal: 10,
207
+ backgroundColor: $config.PRIMARY_COLOR,
208
+ display: 'flex',
209
+ justifyContent: 'center',
210
+ },
211
+ chatInputButtonIcon: {
212
+ width: '80%',
213
+ height: '80%',
233
214
  alignSelf: 'center',
234
- marginRight: 16,
215
+ transform: [
216
+ {
217
+ translateX: -2,
218
+ },
219
+ ],
235
220
  },
236
221
  });
237
222
  export default ChatInput;
@@ -11,7 +11,6 @@
11
11
  */
12
12
  import React, {useContext} from 'react';
13
13
  import CheckBox from '@react-native-community/checkbox';
14
- import hexadecimalTransparency from '../utils/hexadecimalTransparency';
15
14
 
16
15
  /**
17
16
  * A checkbox component for mobile
@@ -25,22 +24,12 @@ const Checkbox = (props: any) => {
25
24
  onValueChange={setUrlCheckbox}
26
25
  disabled={props?.disabled}
27
26
  tintColors={{
28
- true: props?.disabled ? 'grey' : $config.PRIMARY_ACTION_BRAND_COLOR,
29
- false: props?.disabled
30
- ? 'grey'
31
- : $config.FONT_COLOR + hexadecimalTransparency['80%'],
27
+ true: props?.disabled ? 'grey' : $config.PRIMARY_COLOR,
28
+ false: props?.disabled ? 'grey' : $config.PRIMARY_FONT_COLOR + 80,
32
29
  }}
33
- tintColor={
34
- props?.disabled
35
- ? 'grey'
36
- : $config.FONT_COLOR + hexadecimalTransparency['80%']
37
- }
38
- onCheckColor={
39
- props?.disabled ? 'grey' : $config.PRIMARY_ACTION_BRAND_COLOR
40
- }
41
- onTintColor={
42
- props?.disabled ? 'grey' : $config.PRIMARY_ACTION_BRAND_COLOR
43
- }
30
+ tintColor={props?.disabled ? 'grey' : $config.PRIMARY_FONT_COLOR + 80}
31
+ onCheckColor={props?.disabled ? 'grey' : $config.PRIMARY_COLOR}
32
+ onTintColor={props?.disabled ? 'grey' : $config.PRIMARY_COLOR}
44
33
  />
45
34
  );
46
35
  };
@@ -26,8 +26,8 @@ const Checkbox = (props: any) => {
26
26
  value={urlCheckbox}
27
27
  onValueChange={setUrlCheckbox}
28
28
  //@ts-ignore Color prop exists on react-native-web but it not present in @react-native-community/checkbox
29
- color={props.color ?? primaryColor}
30
- style={{...styles.check, ...props.style}}
29
+ color={primaryColor}
30
+ style={styles.check}
31
31
  />
32
32
  );
33
33
  };
@@ -10,58 +10,80 @@
10
10
  *********************************************
11
11
  */
12
12
  import React, {useEffect} from 'react';
13
+ import {StyleSheet} from 'react-native';
13
14
  import {useParams} from '../components/Router';
15
+ import {BtnTemplate, BtnTemplateInterface} from '../../agora-rn-uikit';
16
+ import {useString} from '../utils/useString';
14
17
  import useGetMeetingPhrase from '../utils/useGetMeetingPhrase';
15
- import TertiaryButton from '../atoms/TertiaryButton';
16
- import IconButton, {IconButtonProps} from '../atoms/IconButton';
17
- import {useVideoCall} from '../components/useVideoCall';
18
+ import {
19
+ SHARE_LINK_CONTENT_TYPE,
20
+ useShareLink,
21
+ } from '../components/useShareLink';
22
+ import {
23
+ ButtonTemplateName,
24
+ useButtonTemplate,
25
+ } from '../utils/useButtonTemplate';
26
+ import Styles from '../components/styles';
18
27
 
19
28
  export interface CopyJoinInfoProps {
20
- showLabel?: boolean;
21
- showTeritaryButton?: boolean;
22
- render?: (onPress: () => void) => JSX.Element;
23
- isOnActionSheet?: boolean;
29
+ showText?: boolean;
30
+ buttonTemplateName?: ButtonTemplateName;
31
+ render?: (
32
+ onPress: () => void,
33
+ buttonTemplateName?: ButtonTemplateName,
34
+ ) => JSX.Element;
24
35
  }
25
36
 
26
37
  const CopyJoinInfo = (props: CopyJoinInfoProps) => {
27
- const {
28
- showLabel = $config.ICON_TEXT || false,
29
- showTeritaryButton = false,
30
- isOnActionSheet = false,
31
- } = props;
38
+ const {phrase} = useParams<{phrase: string}>();
39
+ const getMeeting = useGetMeetingPhrase();
40
+ const {copyShareLinkToClipboard} = useShareLink();
32
41
  //commented for v1 release
33
42
  //const copyMeetingInviteButton = useString('copyMeetingInviteButton')();
34
- const copyMeetingInviteButton = 'Invite';
35
- const {setShowInvitePopup} = useVideoCall();
43
+ const copyMeetingInviteButton = 'Copy Meeting Invite';
44
+ const defaultTemplateValue = useButtonTemplate().buttonTemplateName;
45
+ const {buttonTemplateName = defaultTemplateValue} = props;
46
+ useEffect(() => {
47
+ getMeeting(phrase);
48
+ }, [phrase]);
36
49
 
37
- const onPress = () => {
38
- setShowInvitePopup(true);
39
- };
40
- let iconButtonProps: IconButtonProps = {
50
+ const onPress = () =>
51
+ copyShareLinkToClipboard(SHARE_LINK_CONTENT_TYPE.MEETING_INVITE);
52
+ let btnTemplateProps: BtnTemplateInterface = {
41
53
  onPress: onPress,
42
- iconProps: {
43
- name: 'share',
44
- tintColor: $config.SECONDARY_ACTION_COLOR,
45
- },
46
- btnTextProps: {
47
- textColor: $config.FONT_COLOR,
48
- text: showLabel ? copyMeetingInviteButton : '',
49
- },
54
+ name: 'clipboard',
50
55
  };
51
-
52
- iconButtonProps.isOnActionSheet = isOnActionSheet;
56
+ if (buttonTemplateName === ButtonTemplateName.bottomBar) {
57
+ btnTemplateProps.btnText = copyMeetingInviteButton;
58
+ btnTemplateProps.style = Styles.localButtonWithoutBG as Object;
59
+ } else {
60
+ btnTemplateProps.color = $config.PRIMARY_FONT_COLOR;
61
+ btnTemplateProps.style = style.backButton;
62
+ btnTemplateProps.btnText = props.showText ? copyMeetingInviteButton : '';
63
+ }
53
64
 
54
65
  return props?.render ? (
55
- props.render(onPress)
66
+ props.render(onPress, buttonTemplateName)
56
67
  ) : (
57
- <>
58
- {showTeritaryButton ? (
59
- <TertiaryButton text="Invite" onPress={onPress} />
60
- ) : (
61
- <IconButton {...iconButtonProps} />
62
- )}
63
- </>
68
+ <BtnTemplate {...btnTemplateProps} />
64
69
  );
65
70
  };
66
71
 
72
+ const style = StyleSheet.create({
73
+ backButton: {
74
+ // marginLeft: 5,
75
+ flexDirection: 'row',
76
+ justifyContent: 'center',
77
+ alignSelf: 'center',
78
+ width: 28,
79
+ height: 20,
80
+ },
81
+ backIcon: {
82
+ width: 28,
83
+ height: 20,
84
+ alignSelf: 'center',
85
+ justifyContent: 'center',
86
+ },
87
+ });
88
+
67
89
  export default CopyJoinInfo;
@@ -10,130 +10,48 @@
10
10
  *********************************************
11
11
  */
12
12
  import React from 'react';
13
- import {View, StyleSheet, useWindowDimensions} from 'react-native';
14
- import UserAvatar from '../atoms/UserAvatar';
15
- //import AnimatedRings from '../atoms/AnimatedRings';
16
- import {useLayout, useRender} from 'customization-api';
17
- import {BREAKPOINTS, isMobileUA} from '../utils/common';
18
- import {
19
- getGridLayoutName,
20
- getPinnedLayoutName,
21
- } from '../pages/video-call/DefaultLayouts';
13
+ import {Image, Text, View} from 'react-native';
22
14
 
23
- export default function FallbackLogo(
24
- name: string,
25
- isActiveSpeaker?: boolean,
26
- hideAvatar?: boolean,
27
- isMax?: boolean,
28
- avatarSize?: number,
29
- ) {
30
- const {activeUids} = useRender();
31
- const {currentLayout} = useLayout();
32
- const {width} = useWindowDimensions();
33
- const isSmall = width < BREAKPOINTS.xl;
34
- const iconSize = Math.min(avatarSize, 100);
35
- const textSize = Math.min(avatarSize * 0.35, 32);
15
+ export default function FallbackLogo(name: string) {
16
+ // console.log('!', name);
36
17
  return (
37
- <View style={[styles.container]}>
38
- {!hideAvatar ? (
39
- // <View
40
- // style={[
41
- // styles.activeSpeakerBg,
42
- // (currentLayout === getGridLayoutName() && activeUids.length > 9) ||
43
- // (currentLayout === getPinnedLayoutName() && !isMax)
44
- // ? styles.activeSpeakerBgSmall
45
- // : {},
46
- // {
47
- // backgroundColor: isActiveSpeaker
48
- // ? $config.PRIMARY_ACTION_BRAND_COLOR +
49
- // hexadecimalTransparency['15%']
50
- // : 'transparent',
51
- // },
52
- // ]}>
53
- <UserAvatar
54
- name={name}
55
- //name={avatarSize}
56
- containerStyle={[
57
- // styles.avatarBg,
58
- {
59
- width: iconSize,
60
- height: iconSize,
61
- borderRadius: iconSize / 2,
62
- },
63
-
64
- // currentLayout === getPinnedLayoutName() && !isMax
65
- // ? styles.avatarBgSmall
66
- // : {},
67
- // (!isMobileUA() &&
68
- // currentLayout === getGridLayoutName() &&
69
- // isSmall &&
70
- // activeUids.length > 9) ||
71
- // (!isMobileUA() &&
72
- // currentLayout === getPinnedLayoutName() &&
73
- // isSmall &&
74
- // !isMax)
75
- // ? styles.avatarBgMobileUA
76
- // : {},
77
- // isMobileUA() &&
78
- // (activeUids.length > 4 ||
79
- // (currentLayout === getPinnedLayoutName() && !isMax))
80
- // ? styles.avatarBgMobileUA
81
- // : {},
82
-
83
- {
84
- backgroundColor: isActiveSpeaker
85
- ? $config.PRIMARY_ACTION_BRAND_COLOR
86
- : $config.VIDEO_AUDIO_TILE_AVATAR_COLOR,
87
- },
88
- ]}
89
- textStyle={[
90
- styles.textStyle,
91
- {fontSize: textSize, lineHeight: textSize},
92
- ]}
93
- />
94
- ) : (
95
- //</View>
96
- <></>
97
- )}
18
+ <View
19
+ style={{
20
+ flex: 1,
21
+ backgroundColor: '#000',
22
+ justifyContent: 'center',
23
+ alignContent: 'center',
24
+ borderRadius: 15,
25
+ }}>
26
+ {/* <Image
27
+ source={{uri: $config.LOGO}}
28
+ style={{
29
+ height: '15%',
30
+ }}
31
+ resizeMode="contain"
32
+ /> */}
33
+ <View
34
+ style={{
35
+ width: 80,
36
+ height: 80,
37
+ backgroundColor: $config.PRIMARY_COLOR,
38
+ alignSelf: 'center',
39
+ alignContent: 'center',
40
+ justifyContent: 'center',
41
+ borderRadius: 10,
42
+ shadowColor: $config.PRIMARY_COLOR,
43
+ shadowRadius: 20,
44
+ }}>
45
+ <Text
46
+ style={{
47
+ color: $config.SECONDARY_FONT_COLOR,
48
+ fontSize: 20,
49
+ alignSelf: 'center',
50
+ textAlign: 'center',
51
+ }}>
52
+ {name ? name[0]?.toUpperCase() : 'U'}
53
+ </Text>
54
+ </View>
98
55
  </View>
99
56
  );
100
57
  }
101
-
102
- const styles = StyleSheet.create({
103
- container: {
104
- flex: 1,
105
- backgroundColor: $config.VIDEO_AUDIO_TILE_COLOR,
106
- justifyContent: 'center',
107
- },
108
- // activeSpeakerBg: {
109
- // width: 140,
110
- // height: 140,
111
- // borderRadius: 80,
112
- // alignSelf: 'center',
113
- // justifyContent: 'center',
114
- // color: $config.VIDEO_AUDIO_TILE_COLOR,
115
- // },
116
- // activeSpeakerBgSmall: {
117
- // width: 80,
118
- // height: 80,
119
- // },
120
- avatarBg: {
121
- width: 100,
122
- height: 100,
123
- borderRadius: 50,
124
- },
125
- avatarBgSmall: {
126
- width: 60,
127
- height: 60,
128
- },
129
- avatarBgMobileUA: {
130
- width: 45,
131
- height: 45,
132
- },
133
- textStyle: {
134
- fontSize: 32,
135
- lineHeight: 32,
136
- fontWeight: '600',
137
- color: $config.CARD_LAYER_1_COLOR,
138
- },
139
- });
@@ -68,7 +68,7 @@ const style = StyleSheet.create({
68
68
  heading: {
69
69
  fontSize: 20,
70
70
  fontWeight: '700',
71
- color: $config.FONT_COLOR,
71
+ color: $config.PRIMARY_FONT_COLOR,
72
72
  // marginBottom: 20,
73
73
  alignSelf: 'center',
74
74
  },
@@ -8,7 +8,7 @@ import {
8
8
  Modal,
9
9
  Dimensions,
10
10
  } from 'react-native';
11
- import ImageIcon from '../atoms/ImageIcon';
11
+ import {ImageIcon} from '../../agora-rn-uikit';
12
12
  import useLayoutsData from '../pages/video-call/useLayoutsData';
13
13
  import {useLayout} from '../utils/useLayout';
14
14
 
@@ -40,12 +40,14 @@ const LayoutIconDropdown = (props: LayoutIconDropdownProps) => {
40
40
  item?.iconName ? (
41
41
  <ImageIcon
42
42
  key={'btnTemplateNameDropdown' + index}
43
+ style={style.btnHolderCustom}
43
44
  name={item?.iconName}
44
45
  />
45
46
  ) : (
46
47
  <ImageIcon
47
48
  key={'btnTemplateIconDropdown' + index}
48
- name={item?.iconName}
49
+ style={style.btnHolderCustom}
50
+ icon={item.icon}
49
51
  />
50
52
  ),
51
53
  ];
@@ -110,7 +112,7 @@ const style = StyleSheet.create({
110
112
  width: 1,
111
113
  borderRadius: 10,
112
114
  borderWidth: 4,
113
- borderColor: $config.PRIMARY_ACTION_BRAND_COLOR,
115
+ borderColor: $config.PRIMARY_COLOR,
114
116
  },
115
117
  dropdownIconContainer: {
116
118
  flexDirection: 'row',
@@ -122,7 +124,14 @@ const style = StyleSheet.create({
122
124
  alignItems: 'center',
123
125
  position: 'relative',
124
126
  },
125
-
127
+ navItemSeparatorHorizontal: {
128
+ backgroundColor: $config.PRIMARY_FONT_COLOR + '80',
129
+ width: '100%',
130
+ height: 1,
131
+ marginVertical: 10,
132
+ alignSelf: 'center',
133
+ opacity: 0.8,
134
+ },
126
135
  separaterContainer: {
127
136
  flex: 0.5,
128
137
  paddingHorizontal: 5,
@@ -136,6 +145,11 @@ const style = StyleSheet.create({
136
145
  borderRadius: 10,
137
146
  padding: 10,
138
147
  },
148
+ btnHolderCustom: {
149
+ width: '100%',
150
+ height: '100%',
151
+ resizeMode: 'contain',
152
+ },
139
153
  backDrop: {
140
154
  position: 'absolute',
141
155
  top: 0,