agora-appbuilder-core 3.0.10 → 3.0.12

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 (249) hide show
  1. package/Readme.md +0 -6
  2. package/package.json +2 -2
  3. package/template/_package-lock.json +4979 -7086
  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 -26
  36. package/template/index.js +0 -4
  37. package/template/index.rsdk.tsx +0 -1
  38. package/template/index.web.js +1 -7
  39. package/template/index.wsdk.tsx +1 -1
  40. package/template/ios/HelloWorld/Info.plist +1 -14
  41. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -17
  42. package/template/metro.config.js +1 -1
  43. package/template/package.json +7 -21
  44. package/template/react-native-toast-message/index.d.ts +43 -43
  45. package/template/react-native-toast-message/src/colors/index.js +2 -3
  46. package/template/react-native-toast-message/src/components/base/index.js +59 -46
  47. package/template/react-native-toast-message/src/components/base/styles.js +32 -16
  48. package/template/react-native-toast-message/src/components/error.js +2 -3
  49. package/template/react-native-toast-message/src/components/info.js +2 -3
  50. package/template/react-native-toast-message/src/components/success.js +2 -3
  51. package/template/react-native-toast-message/src/index.js +31 -122
  52. package/template/react-native-toast-message/src/index.sdk.tsx +35 -125
  53. package/template/react-native-toast-message/src/styles.js +4 -3
  54. package/template/react-native-toast-message/src/styles.sdk.ts +4 -3
  55. package/template/src/App.tsx +0 -6
  56. package/template/src/AppWrapper.tsx +28 -63
  57. package/template/src/assets/icons.ts +102 -0
  58. package/template/src/atoms/HorizontalRule.tsx +1 -3
  59. package/template/src/atoms/PrimaryButton.tsx +26 -51
  60. package/template/src/atoms/SecondaryButton.tsx +5 -8
  61. package/template/src/atoms/TextInput.tsx +14 -12
  62. package/template/src/components/Chat.tsx +214 -86
  63. package/template/src/components/ChatContext.ts +1 -8
  64. package/template/src/components/ColorConfigure.tsx +1 -1
  65. package/template/src/components/ColorContext.ts +1 -1
  66. package/template/src/components/{Controls1.native.tsx → Controls.native.tsx} +4 -6
  67. package/template/src/components/Controls.tsx +42 -342
  68. package/template/src/components/DeviceConfigure.tsx +101 -461
  69. package/template/src/components/DeviceContext.tsx +4 -8
  70. package/template/src/components/EventsConfigure.tsx +7 -144
  71. package/template/src/components/GraphQLProvider.tsx +1 -1
  72. package/template/src/components/GridVideo.tsx +44 -59
  73. package/template/src/components/HostControlView.tsx +35 -114
  74. package/template/src/components/Navbar.tsx +398 -216
  75. package/template/src/components/NetworkQualityContext.tsx +20 -20
  76. package/template/src/components/ParticipantsView.tsx +154 -177
  77. package/template/src/components/PinnedVideo.tsx +120 -207
  78. package/template/src/components/Precall.native.tsx +119 -358
  79. package/template/src/components/Precall.tsx +135 -269
  80. package/template/src/components/RTMConfigure.tsx +4 -27
  81. package/template/src/components/Router.electron.ts +0 -1
  82. package/template/src/components/Router.native.ts +0 -1
  83. package/template/src/components/Router.sdk.ts +0 -1
  84. package/template/src/components/Router.ts +0 -1
  85. package/template/src/components/Settings.tsx +95 -26
  86. package/template/src/components/SettingsView.tsx +56 -251
  87. package/template/src/components/Share.tsx +273 -302
  88. package/template/src/components/StorageContext.tsx +3 -30
  89. package/template/src/components/chat-messages/useChatMessages.tsx +23 -69
  90. package/template/src/components/chat-ui/useChatUIControl.tsx +0 -7
  91. package/template/src/components/common/Error.tsx +6 -20
  92. package/template/src/components/common/Logo.tsx +15 -16
  93. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -10
  94. package/template/src/components/contexts/VideoMeetingDataContext.tsx +7 -37
  95. package/template/src/components/livestream/LiveStreamContext.tsx +36 -270
  96. package/template/src/components/livestream/Types.ts +14 -39
  97. package/template/src/components/livestream/index.ts +0 -1
  98. package/template/src/components/livestream/views/LiveStreamControls.tsx +4 -12
  99. package/template/src/components/participants/AllAudienceParticipants.tsx +30 -101
  100. package/template/src/components/participants/AllHostParticipants.tsx +34 -103
  101. package/template/src/components/participants/MeParticipant.tsx +38 -0
  102. package/template/src/components/participants/ParticipantName.tsx +7 -13
  103. package/template/src/components/participants/ParticipantSectionTitle.tsx +10 -35
  104. package/template/src/components/participants/RemoteParticipants.tsx +71 -0
  105. package/template/src/components/participants/ScreenshareParticipants.tsx +12 -144
  106. package/template/src/components/precall/{LocalMute1.native.tsx → LocalMute.native.tsx} +5 -21
  107. package/template/src/components/precall/LocalMute.tsx +14 -84
  108. package/template/src/components/precall/VideoPreview.native.tsx +3 -48
  109. package/template/src/components/precall/VideoPreview.tsx +7 -163
  110. package/template/src/components/precall/joinCallBtn.tsx +2 -15
  111. package/template/src/components/precall/meetingTitle.tsx +12 -15
  112. package/template/src/components/precall/selectDevice.tsx +21 -1
  113. package/template/src/components/precall/textInput.tsx +4 -32
  114. package/template/src/components/precall/usePreCall.tsx +0 -16
  115. package/template/src/components/styles.ts +21 -42
  116. package/template/src/components/useShareLink.tsx +14 -12
  117. package/template/src/language/default-labels/precallScreenLabels.ts +3 -3
  118. package/template/src/pages/Authenticate.tsx +15 -5
  119. package/template/src/pages/Create.tsx +165 -293
  120. package/template/src/pages/Join.tsx +67 -93
  121. package/template/src/pages/VideoCall.tsx +64 -89
  122. package/template/src/pages/video-call/DefaultLayouts.ts +4 -4
  123. package/template/src/pages/video-call/NameWithMicIcon.tsx +44 -120
  124. package/template/src/pages/video-call/RenderComponent.tsx +2 -3
  125. package/template/src/pages/video-call/VideoCallScreen.tsx +9 -45
  126. package/template/src/pages/video-call/VideoComponent.tsx +3 -18
  127. package/template/src/pages/video-call/VideoRenderer.tsx +60 -218
  128. package/template/src/rtm-events/constants.ts +0 -2
  129. package/template/src/subComponents/ChatBubble.tsx +83 -123
  130. package/template/src/subComponents/ChatContainer.tsx +84 -257
  131. package/template/src/subComponents/ChatInput.tsx +46 -61
  132. package/template/src/subComponents/Checkbox.native.tsx +5 -16
  133. package/template/src/subComponents/Checkbox.tsx +2 -2
  134. package/template/src/subComponents/CopyJoinInfo.tsx +58 -36
  135. package/template/src/subComponents/FallbackLogo.tsx +40 -122
  136. package/template/src/subComponents/LanguageSelector.tsx +1 -1
  137. package/template/src/subComponents/{LayoutIconDropdown1.native.tsx → LayoutIconDropdown.native.tsx} +18 -4
  138. package/template/src/subComponents/LayoutIconDropdown.tsx +134 -131
  139. package/template/src/subComponents/LocalAudioMute.tsx +27 -119
  140. package/template/src/subComponents/LocalEndCall.tsx +33 -71
  141. package/template/src/subComponents/LocalSwitchCamera.tsx +30 -17
  142. package/template/src/subComponents/LocalVideoMute.tsx +27 -117
  143. package/template/src/subComponents/Logo.tsx +4 -3
  144. package/template/src/subComponents/LogoutButton.tsx +1 -1
  145. package/template/src/subComponents/NetworkQualityPill.tsx +63 -60
  146. package/template/src/subComponents/OpenInNativeButton.tsx +3 -3
  147. package/template/src/subComponents/Recording.tsx +29 -28
  148. package/template/src/subComponents/RemoteAudioMute.tsx +29 -83
  149. package/template/src/subComponents/RemoteEndCall.tsx +5 -8
  150. package/template/src/subComponents/RemoteVideoMute.tsx +21 -74
  151. package/template/src/subComponents/ScreenShareNotice.tsx +8 -83
  152. package/template/src/subComponents/SelectDevice.tsx +61 -404
  153. package/template/src/subComponents/SelectOAuth.tsx +8 -9
  154. package/template/src/subComponents/ToastConfig.tsx +10 -150
  155. package/template/src/subComponents/chat/ChatParticipants.tsx +78 -187
  156. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +32 -95
  157. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -29
  158. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +6 -6
  159. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +11 -24
  160. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +10 -17
  161. package/template/src/subComponents/recording/useRecording.tsx +27 -79
  162. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +70 -52
  163. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +2 -11
  164. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +4 -26
  165. package/template/src/utils/common.tsx +1 -155
  166. package/template/src/utils/index.tsx +0 -19
  167. package/template/src/utils/isMobileOrTablet.ts +2 -7
  168. package/template/src/utils/useButtonTemplate.tsx +0 -1
  169. package/template/src/utils/useMuteToggleLocal.ts +3 -54
  170. package/template/web/index.html +0 -5
  171. package/template/webpack.commons.js +8 -13
  172. package/template/webpack.web.config.js +0 -1
  173. package/template/agora-rn-uikit/src/Reducer/ActiveSpeakerDetected.ts +0 -11
  174. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +0 -24
  175. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +0 -11
  176. package/template/android/app/src/main/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  177. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  178. package/template/android/app/src/main/res/values/colors.xml +0 -7
  179. package/template/react-native-toast-message/src/components/checkbox.js +0 -178
  180. package/template/react-native.config.js +0 -7
  181. package/template/src/assets/font-styles.css +0 -329
  182. package/template/src/assets/fonts/SourceSansPro-Regular.ttf +0 -0
  183. package/template/src/assets/fonts/icomoon.ttf +0 -0
  184. package/template/src/assets/permission.png +0 -0
  185. package/template/src/assets/selection.json +0 -1
  186. package/template/src/atoms/ActionMenu.tsx +0 -236
  187. package/template/src/atoms/AnimatedActiveSpeaker.native.tsx +0 -71
  188. package/template/src/atoms/AnimatedActiveSpeaker.tsx +0 -84
  189. package/template/src/atoms/AnimatedRings.native.tsx +0 -68
  190. package/template/src/atoms/AnimatedRings.tsx +0 -70
  191. package/template/src/atoms/Card.tsx +0 -61
  192. package/template/src/atoms/CircularProgress.native.tsx +0 -121
  193. package/template/src/atoms/CircularProgress.tsx +0 -102
  194. package/template/src/atoms/CustomIcon.tsx +0 -88
  195. package/template/src/atoms/CustomSwitch.tsx +0 -287
  196. package/template/src/atoms/Dropdown.tsx +0 -306
  197. package/template/src/atoms/IconButton.tsx +0 -162
  198. package/template/src/atoms/ImageIcon.tsx +0 -98
  199. package/template/src/atoms/InfoBubble.tsx +0 -291
  200. package/template/src/atoms/Input.tsx +0 -87
  201. package/template/src/atoms/InviteInfo.tsx +0 -166
  202. package/template/src/atoms/LinkButton.tsx +0 -28
  203. package/template/src/atoms/OutlineButton.tsx +0 -61
  204. package/template/src/atoms/ParticipantsCount.tsx +0 -73
  205. package/template/src/atoms/Popup.tsx +0 -147
  206. package/template/src/atoms/RecordingInfo.tsx +0 -49
  207. package/template/src/atoms/Spacer.tsx +0 -22
  208. package/template/src/atoms/TertiaryButton.tsx +0 -78
  209. package/template/src/atoms/Toggle.tsx +0 -47
  210. package/template/src/atoms/Tooltip.native.tsx +0 -65
  211. package/template/src/atoms/Tooltip.tsx +0 -94
  212. package/template/src/atoms/UserAvatar.tsx +0 -60
  213. package/template/src/components/CommonStyles.ts +0 -44
  214. package/template/src/components/ToastComponent.tsx +0 -8
  215. package/template/src/components/participants/Participant.tsx +0 -302
  216. package/template/src/components/participants/UserActionMenuOptions.tsx +0 -398
  217. package/template/src/components/popups/InvitePopup.tsx +0 -115
  218. package/template/src/components/popups/StopRecordingPopup.tsx +0 -114
  219. package/template/src/components/precall/PermissionHelper.native.tsx +0 -5
  220. package/template/src/components/precall/PermissionHelper.tsx +0 -126
  221. package/template/src/components/precall/PreCallSettings.tsx +0 -52
  222. package/template/src/components/useToast.tsx +0 -41
  223. package/template/src/components/useVideoCall.tsx +0 -65
  224. package/template/src/pages/Endcall.tsx +0 -148
  225. package/template/src/pages/video-call/ActionSheet.native.tsx +0 -215
  226. package/template/src/pages/video-call/ActionSheet.tsx +0 -226
  227. package/template/src/pages/video-call/ActionSheetContent.tsx +0 -479
  228. package/template/src/pages/video-call/ActionSheetHandle.tsx +0 -38
  229. package/template/src/pages/video-call/ActionSheetStyles.css +0 -138
  230. package/template/src/pages/video-call/SidePanelHeader.tsx +0 -190
  231. package/template/src/pages/video-call/VideoCallMobileView.tsx +0 -139
  232. package/template/src/pages/video-call/VideoCallScreen.native.tsx +0 -37
  233. package/template/src/subComponents/ChatInput.ios.tsx +0 -237
  234. package/template/src/subComponents/EndcallPopup.tsx +0 -107
  235. package/template/src/subComponents/LayoutIconButton.tsx +0 -201
  236. package/template/src/subComponents/RemoteMutePopup.tsx +0 -193
  237. package/template/src/subComponents/RemoveMeetingPopup.tsx +0 -109
  238. package/template/src/subComponents/RemoveScreensharePopup.tsx +0 -109
  239. package/template/src/subComponents/SelectDeviceSettings.backup.tsx +0 -207
  240. package/template/src/subComponents/SidePanelHeader.tsx +0 -112
  241. package/template/src/theme/index.ts +0 -46
  242. package/template/src/utils/PlatformWrapper.tsx +0 -21
  243. package/template/src/utils/hexadecimalTransparency.ts +0 -108
  244. package/template/src/utils/pendingStateUpdateHelper.ts +0 -19
  245. package/template/src/utils/useFocus.tsx +0 -46
  246. package/template/src/utils/useIsActiveSpeaker.ts +0 -27
  247. package/template/src/utils/useIsHandRaised.ts +0 -13
  248. package/template/src/utils/useRemoteEndScreenshare.ts +0 -26
  249. 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,