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
@@ -11,37 +11,9 @@
11
11
  */
12
12
  // @ts-nocheck
13
13
  import React from 'react';
14
- import {Platform, TouchableOpacity, View, StyleSheet} from 'react-native';
15
- import ThemeConfig from '../theme';
14
+ import {Platform} from 'react-native';
16
15
  import Toast, {BaseToast} from '../../react-native-toast-message';
17
- import CheckBoxBaseToast from '../../react-native-toast-message/src/components/checkbox';
18
16
  import isMobileOrTablet from '../utils/isMobileOrTablet';
19
- import ImageIcon from '../atoms/ImageIcon';
20
- import {IconsInterface} from 'src/atoms/CustomIcon';
21
- import {autoUpdater} from 'electron';
22
-
23
- const trailingIcon = (
24
- <TouchableOpacity
25
- onPress={() => Toast.hide()}
26
- style={{alignSelf: 'flex-end'}}>
27
- <View style={{width: 26, height: 26}}>
28
- <ImageIcon
29
- iconType="plain"
30
- tintColor={$config.SECONDARY_ACTION_COLOR}
31
- name="close"
32
- iconSize={26}
33
- />
34
- </View>
35
- </TouchableOpacity>
36
- );
37
-
38
- const leadingIcon = (iconName: keyof IconsInterface, color: string) => {
39
- return (
40
- <View style={{marginRight: 4, alignSelf: 'center', width: 26, height: 26}}>
41
- <ImageIcon iconType="plain" tintColor={color} name={iconName} />
42
- </View>
43
- );
44
- };
45
17
 
46
18
  const ToastConfig = {
47
19
  /*
@@ -52,134 +24,22 @@ const ToastConfig = {
52
24
  <BaseToast
53
25
  {...rest}
54
26
  //BaseToast is modified to have zIndex: 100
55
- leadingIcon={leadingIcon('tick-fill', $config.SEMANTIC_SUCCESS)}
56
- trailingIcon={trailingIcon}
57
27
  style={{
58
- borderRadius: 4,
59
- borderTopWidth: 6,
60
- backgroundColor: $config.CARD_LAYER_4_COLOR,
61
- //width: !isMobileOrTablet() ? '40%' : '95%',
62
- width: '100%',
63
- borderTopColor: $config.SEMANTIC_SUCCESS,
28
+ borderLeftColor: $config.PRIMARY_COLOR,
29
+ backgroundColor: $config.SECONDARY_FONT_COLOR,
30
+ width: !isMobileOrTablet() ? '40%' : '95%',
64
31
  }}
65
- contentContainerStyle={styles.contentContainerStyle}
66
- text1Style={styles.text1Style}
67
- text2Style={styles.text2Style}
68
- text1={text1}
69
- text2={text2}
70
- primaryBtn={null}
71
- secondaryBtn={null}
72
- />
73
- ),
74
- error: ({text1, text2, props, ...rest}) => (
75
- <BaseToast
76
- {...rest}
77
- //BaseToast is modified to have zIndex: 100
78
- leadingIcon={leadingIcon('alert', $config.SEMANTIC_ERROR)}
79
- trailingIcon={trailingIcon}
80
- style={{
81
- borderRadius: 4,
82
- borderTopWidth: 6,
83
- backgroundColor: $config.CARD_LAYER_4_COLOR,
84
- //width: !isMobileOrTablet() ? '40%' : '95%',
85
- width: '100%',
86
- borderTopColor: $config.SEMANTIC_ERROR,
32
+ contentContainerStyle={{paddingHorizontal: 15, overflow: 'hidden'}}
33
+ text1Style={{
34
+ fontSize: 15,
35
+ fontWeight: '400',
36
+ color: $config.PRIMARY_FONT_COLOR,
87
37
  }}
88
- contentContainerStyle={styles.contentContainerStyle}
89
- text1Style={styles.text1Style}
90
- text2Style={styles.text2Style}
91
38
  text1={text1}
92
39
  text2={text2}
93
- primaryBtn={null}
94
- secondaryBtn={null}
95
- />
96
- ),
97
- info: ({text1, text2, props, primaryBtn, secondaryBtn, ...rest}) => (
98
- <BaseToast
99
- {...rest}
100
- //BaseToast is modified to have zIndex: 100
101
- trailingIcon={trailingIcon}
102
- style={{
103
- height: 'auto', //primaryBtn || secondaryBtn ? 185 : text1 && text2 ? 105 : 70,
104
- borderRadius: ThemeConfig.BorderRadius.small,
105
- borderTopWidth: 6,
106
- backgroundColor: $config.CARD_LAYER_4_COLOR,
107
- width: '100%',
108
- borderTopColor: $config.PRIMARY_ACTION_BRAND_COLOR,
109
- }}
110
- contentContainerStyle={styles.contentContainerStyle}
111
- text1Style={styles.text1Style}
112
- text2Style={styles.text2Style}
113
- text1={text1}
114
- text2={text2}
115
- primaryBtn={primaryBtn ? primaryBtn : null}
116
- secondaryBtn={secondaryBtn ? secondaryBtn : null}
117
- />
118
- ),
119
- checked: ({
120
- text1,
121
- text2,
122
- props,
123
- primaryBtn,
124
- secondaryBtn,
125
- checkbox,
126
- ...rest
127
- }) => (
128
- <CheckBoxBaseToast
129
- {...rest}
130
- //BaseToast is modified to have zIndex: 100
131
- trailingIcon={trailingIcon}
132
- style={{
133
- height: primaryBtn || secondaryBtn ? 185 : text1 && text2 ? 105 : 70,
134
- borderRadius: 4,
135
- borderTopWidth: 6,
136
- backgroundColor: $config.CARD_LAYER_4_COLOR,
137
- width: '100%',
138
- borderTopColor: $config.PRIMARY_ACTION_BRAND_COLOR,
139
- }}
140
- contentContainerStyle={styles.contentContainerStyle}
141
- text1Style={styles.text1Style}
142
- text2Style={styles.text2Style}
143
- subTextStyle={styles.subTextStyle}
144
- text1={text1}
145
- text2={text2}
146
- primaryBtn={primaryBtn ? primaryBtn : null}
147
- secondaryBtn={secondaryBtn ? secondaryBtn : null}
148
- checkbox={checkbox}
40
+ // text2={props.uuid}
149
41
  />
150
42
  ),
151
43
  };
152
44
 
153
45
  export default ToastConfig;
154
-
155
- const styles = StyleSheet.create({
156
- text1Style: {
157
- fontSize: ThemeConfig.FontSize.normal,
158
- lineHeight: 22,
159
- fontFamily: ThemeConfig.FontFamily.sansPro,
160
- fontWeight: '600',
161
- color: $config.FONT_COLOR,
162
- alignSelf: 'center',
163
- },
164
- text2Style: {
165
- fontSize: ThemeConfig.FontSize.normal,
166
- lineHeight: 22,
167
- fontFamily: ThemeConfig.FontFamily.sansPro,
168
- fontWeight: '400',
169
- color: $config.FONT_COLOR + ThemeConfig.EmphasisPlus.medium,
170
- marginTop: 11,
171
- alignSelf: 'center',
172
- },
173
- subTextStyle: {
174
- color: $config.FONT_COLOR + ThemeConfig.EmphasisPlus.medium,
175
- },
176
- contentContainerStyle: {
177
- paddingHorizontal: 15,
178
- paddingTop: 20,
179
- paddingBottom: 25,
180
- overflow: 'hidden',
181
- flexDirection: 'column',
182
- justifyContent: 'flex-start',
183
- },
184
- containerStyle: {},
185
- });
@@ -1,229 +1,120 @@
1
- import React, {useState} from 'react';
1
+ import React, {useContext} from 'react';
2
2
  import {
3
3
  View,
4
4
  Text,
5
+ TouchableOpacity,
5
6
  ScrollView,
6
7
  useWindowDimensions,
7
8
  StyleSheet,
8
- Pressable,
9
9
  } from 'react-native';
10
10
  import {RFValue} from 'react-native-responsive-fontsize';
11
11
  import TextWithTooltip from '../TextWithTooltip';
12
12
  import {useString} from '../../utils/useString';
13
- import {isIOS, isMobileUA, isWebInternal} from '../../utils/common';
13
+ import {isIOS, isWebInternal} from '../../utils/common';
14
14
  import {useChatNotification} from '../../components/chat-notification/useChatNotification';
15
15
  import {UidType, useLocalUid} from '../../../agora-rn-uikit';
16
- import ImageIcon from '../../atoms/ImageIcon';
17
16
  import {useRender} from 'customization-api';
18
- import UserAvatar from '../../atoms/UserAvatar';
19
- import ThemeConfig from '../../theme';
20
- import hexadecimalTransparency from '../../utils/hexadecimalTransparency';
21
- import Spacer from '../../atoms/Spacer';
22
-
23
- const ChatIcon = () => (
24
- <View style={{alignSelf: 'center', marginRight: 20}}>
25
- <ImageIcon
26
- iconType="plain"
27
- name="chat-nav"
28
- tintColor={$config.SECONDARY_ACTION_COLOR}
29
- />
30
- </View>
31
- );
32
17
 
33
18
  const ChatParticipants = (props: any) => {
34
19
  //commented for v1 release
35
20
  //const remoteUserDefaultLabel = useString('remoteUserDefaultLabel')();
36
21
  const remoteUserDefaultLabel = 'User';
37
22
  const {selectUser} = props;
38
- const {renderList, activeUids} = useRender();
23
+ const {height, width} = useWindowDimensions();
24
+ const {renderList} = useRender();
39
25
  const localUid = useLocalUid();
40
26
  const {unreadIndividualMessageCount} = useChatNotification();
41
- const isMobile = isMobileUA();
27
+ const isChatUser = (userId: UidType, userInfo: any) => {
28
+ return (
29
+ userId !== localUid && //user can't chat with own user
30
+ // @ts-ignore
31
+ userId !== '1' && //user can't chat with pstn user
32
+ userInfo?.type === 'rtc' &&
33
+ !userInfo?.offline
34
+ );
35
+ };
36
+
42
37
  return (
43
38
  <ScrollView>
44
- {activeUids && activeUids.length === 1 ? (
45
- <View style={style.defaultMessageContainer}>
46
- <Text style={style.defaultMessageText}>
47
- No one else has joined yet.
48
- </Text>
49
- </View>
50
- ) : (
51
- <></>
52
- )}
53
- {Object.keys(renderList)
54
- .map((i) => parseInt(i))
55
- .filter((i) => {
56
- try {
57
- if (isNaN(i)) {
58
- return false;
59
- } else {
60
- const userId = i;
61
- const userInfo = renderList[userId];
62
- return (
63
- userId !== localUid && //user can't chat with own user
64
- // @ts-ignore
65
- userId !== '1' && //user can't chat with pstn user
66
- userInfo?.type === 'rtc' &&
67
- !userInfo?.offline
68
- );
69
- }
70
- } catch (error) {
71
- return false;
72
- }
73
- })
74
- .sort((a, b) => {
39
+ {Object.entries(renderList).map(([uid, value]) => {
40
+ const uidAsNumber = parseInt(uid);
41
+ if (isChatUser(uidAsNumber, value)) {
75
42
  return (
76
- renderList[b]?.lastMessageTimeStamp -
77
- renderList[a]?.lastMessageTimeStamp
43
+ <TouchableOpacity
44
+ style={style.participantContainer}
45
+ key={uid}
46
+ onPress={() => {
47
+ selectUser(uidAsNumber);
48
+ }}>
49
+ {unreadIndividualMessageCount &&
50
+ unreadIndividualMessageCount[uidAsNumber] ? (
51
+ <View style={style.chatNotificationPrivate}>
52
+ <Text>{unreadIndividualMessageCount[uidAsNumber]}</Text>
53
+ </View>
54
+ ) : null}
55
+ <View style={{flex: 1}}>
56
+ <TextWithTooltip
57
+ touchable={false}
58
+ style={[
59
+ style.participantText,
60
+ {
61
+ fontSize: RFValue(16, height > width ? height : width),
62
+ },
63
+ ]}
64
+ value={
65
+ renderList[uidAsNumber]
66
+ ? renderList[uidAsNumber].name + ''
67
+ : remoteUserDefaultLabel
68
+ }
69
+ />
70
+ </View>
71
+ <View>
72
+ <Text
73
+ style={{
74
+ color: $config.PRIMARY_FONT_COLOR,
75
+ fontSize: 18,
76
+ }}>{`>`}</Text>
77
+ </View>
78
+ </TouchableOpacity>
78
79
  );
79
- })
80
- .map((uid) => {
81
- const uidAsNumber = uid;
82
- const name = renderList[uidAsNumber]
83
- ? renderList[uidAsNumber].name + ''
84
- : remoteUserDefaultLabel;
85
- return (
86
- <PlatformWrapper key={'chat-participant' + uid}>
87
- {(isHovered: boolean) => {
88
- return (
89
- <Pressable
90
- onPress={() => {
91
- selectUser(uidAsNumber);
92
- }}>
93
- <View style={style.participantContainer}>
94
- <View style={style.bgContainerStyle}>
95
- <UserAvatar
96
- name={name}
97
- containerStyle={style.userAvatarContainer}
98
- textStyle={style.userAvatarText}
99
- />
100
- </View>
101
- <View style={style.participantTextContainer}>
102
- <Text numberOfLines={1} style={[style.participantText]}>
103
- {name}
104
- </Text>
105
- </View>
106
- {unreadIndividualMessageCount &&
107
- unreadIndividualMessageCount[uidAsNumber] &&
108
- !isHovered ? (
109
- <>
110
- <View style={style.chatNotificationPrivate}>
111
- <Text style={style.chatNotificationCountText}>
112
- {unreadIndividualMessageCount[uidAsNumber]}
113
- </Text>
114
- </View>
115
- <Spacer size={20} horizontal={true} />
116
- </>
117
- ) : isMobile || isHovered ? (
118
- <ChatIcon />
119
- ) : (
120
- <></>
121
- )}
122
- </View>
123
- </Pressable>
124
- );
125
- }}
126
- </PlatformWrapper>
127
- );
128
- })}
80
+ }
81
+ })}
129
82
  </ScrollView>
130
83
  );
131
84
  };
132
85
 
133
- const PlatformWrapper = ({children}) => {
134
- const [isHovered, setIsHovered] = useState(false);
135
- return isWebInternal() && !isMobileUA() ? (
136
- <div
137
- style={{
138
- backgroundColor: isHovered
139
- ? $config.CARD_LAYER_5_COLOR + hexadecimalTransparency['10%']
140
- : 'transparent',
141
- cursor: isHovered ? 'pointer' : 'auto',
142
- }}
143
- onMouseEnter={() => {
144
- setIsHovered(true);
145
- }}
146
- onMouseLeave={() => {
147
- setIsHovered(false);
148
- }}>
149
- {children(isHovered)}
150
- </div>
151
- ) : (
152
- <>{children(false)}</>
153
- );
154
- };
155
-
156
86
  const style = StyleSheet.create({
157
- defaultMessageContainer: {
158
- backgroundColor: $config.CARD_LAYER_2_COLOR,
159
- borderRadius: 8,
160
- padding: 12,
161
- marginTop: 20,
162
- marginHorizontal: 20,
163
- marginBottom: 0,
164
- },
165
- defaultMessageText: {
166
- fontFamily: ThemeConfig.FontFamily.sansPro,
167
- fontWeight: '400',
168
- fontSize: 12,
169
- color: $config.FONT_COLOR + hexadecimalTransparency['40%'],
170
- },
171
- bgContainerStyle: {
172
- backgroundColor: $config.VIDEO_AUDIO_TILE_AVATAR_COLOR,
173
- width: 36,
174
- height: 36,
175
- borderRadius: 18,
176
- marginRight: 8,
177
- marginLeft: 20,
178
- marginVertical: 8,
179
- },
180
- userAvatarContainer: {
181
- width: 36,
182
- height: 36,
183
- borderRadius: 18,
184
- },
185
- userAvatarText: {
186
- fontSize: ThemeConfig.FontSize.tiny,
187
- lineHeight: 12,
188
- fontWeight: '400',
189
- color: $config.CARD_LAYER_1_COLOR,
190
- },
191
87
  participantContainer: {
192
88
  flexDirection: 'row',
193
- // flex: 1,
194
- overflow: 'hidden',
195
- justifyContent: 'space-between',
196
- alignItems: 'center',
197
- },
198
- participantTextContainer: {
199
89
  flex: 1,
200
- alignSelf: 'center',
90
+ height: 20,
91
+ marginTop: 10,
92
+ backgroundColor: $config.SECONDARY_FONT_COLOR,
93
+ overflow: 'hidden',
94
+ marginHorizontal: 10,
201
95
  },
202
96
  participantText: {
203
- //flex: 1,
204
- fontFamily: ThemeConfig.FontFamily.sansPro,
205
- fontWeight: '400',
206
- fontSize: 14,
207
- lineHeight: 14,
208
- color: $config.FONT_COLOR,
97
+ flex: 1,
98
+ fontWeight: isWebInternal() ? '500' : '700',
99
+ flexDirection: 'row',
100
+ color: $config.PRIMARY_FONT_COLOR,
209
101
  textAlign: 'left',
210
102
  flexShrink: 1,
103
+ marginRight: 30,
211
104
  },
212
105
  chatNotificationPrivate: {
213
- backgroundColor: $config.SEMANTIC_NEUTRAL,
214
- borderRadius: 8,
215
- alignSelf: 'center',
216
- },
217
- chatNotificationCountText: {
218
- fontFamily: ThemeConfig.FontFamily.sansPro,
219
- fontWeight: '600',
220
- fontSize: 12,
221
- lineHeight: 12,
222
- textAlign: 'center',
223
- color: $config.FONT_COLOR,
224
- paddingVertical: 2,
225
- paddingLeft: 8,
226
- paddingRight: 9,
106
+ width: 20,
107
+ height: 20,
108
+ display: 'flex',
109
+ alignItems: 'center',
110
+ justifyContent: 'center',
111
+ backgroundColor: $config.PRIMARY_COLOR,
112
+ color: $config.SECONDARY_FONT_COLOR,
113
+ fontFamily: isIOS() ? 'Helvetica' : 'sans-serif',
114
+ borderRadius: 10,
115
+ position: 'absolute',
116
+ right: 20,
117
+ top: 0,
227
118
  },
228
119
  });
229
120
 
@@ -1,15 +1,14 @@
1
1
  import React, {useContext, useEffect, useState} from 'react';
2
- import {View, Text, StyleSheet} from 'react-native';
2
+ import {View, Text} from 'react-native';
3
3
  import RemoteLiveStreamRequestApprove from './controls/RemoteLiveStreamRequestApprove';
4
4
  import RemoteLiveStreamRequestReject from './controls/RemoteLiveStreamRequestReject';
5
+ import ParticipantName from '../../components/participants/ParticipantName';
5
6
  import LiveStreamContext, {RaiseHandValue} from '../../components/livestream';
6
7
  import {filterObject} from '../../utils/index';
7
8
  import ParticipantSectionTitle from '../../components/participants/ParticipantSectionTitle';
8
9
  import {useString} from '../../utils/useString';
9
10
  import {ClientRole} from '../../../agora-rn-uikit';
10
11
  import {useRender} from 'customization-api';
11
- import UserAvatar from '../../atoms/UserAvatar';
12
- import Spacer from '../../atoms/Spacer';
13
12
 
14
13
  const CurrentLiveStreamRequestsView = (props: any) => {
15
14
  //commented for v1 release
@@ -23,6 +22,7 @@ const CurrentLiveStreamRequestsView = (props: any) => {
23
22
  const remoteUserDefaultLabel = 'User';
24
23
  const noUserFoundLabel = 'User not found';
25
24
  const raisedHandsListTitleLabel = 'Streaming Request';
25
+ const {p_style} = props;
26
26
  const {renderList} = useRender();
27
27
  const {raiseHandList, setLastCheckedRequestTimestamp} =
28
28
  useContext(LiveStreamContext);
@@ -45,103 +45,40 @@ const CurrentLiveStreamRequestsView = (props: any) => {
45
45
  setLastCheckedRequestTimestamp(new Date().getTime());
46
46
  };
47
47
  }, []);
48
- const containerStyle = {
49
- backgroundColor: $config.VIDEO_AUDIO_TILE_AVATAR_COLOR,
50
- width: 36,
51
- height: 36,
52
- borderRadius: 18,
53
- };
54
- const textStyle = {
55
- fontSize: 12,
56
- fontWeight: '400',
57
- color: $config.CARD_LAYER_1_COLOR,
58
- };
59
- const [showRequestSection, setShowRequestSection] = useState(true);
48
+
60
49
  return (
61
50
  <>
62
- {Object.keys(raiseHandList).length == 0 ||
63
- Object.keys(activeLiveStreamRequests).length == 0 ? (
64
- <></>
65
- ) : (
66
- <>
67
- <ParticipantSectionTitle
68
- title={raisedHandsListTitleLabel + ' '}
69
- count={Object.keys(activeLiveStreamRequests).length}
70
- isOpen={showRequestSection}
71
- onPress={() => setShowRequestSection(!showRequestSection)}
72
- />
73
- {showRequestSection ? (
74
- Object.keys(activeLiveStreamRequests).map(
75
- (userUID: any, index: number) =>
76
- renderList[userUID] ? (
77
- <View style={styles.container}>
78
- <View style={styles.userInfoContainer}>
79
- <UserAvatar
80
- name={renderList[userUID].name}
81
- containerStyle={containerStyle}
82
- textStyle={textStyle}
83
- />
84
- <View style={{alignSelf: 'center', flex: 1}}>
85
- <Text
86
- style={styles.participantNameText}
87
- numberOfLines={1}>
88
- {renderList[userUID].name}
89
- </Text>
90
- </View>
91
- </View>
92
- <View style={styles.btnContainer}>
93
- <RemoteLiveStreamRequestReject
94
- uid={userUID}
95
- toastId={raiseHandList[userUID].ts}
96
- />
97
- <Spacer size={8} horizontal={true} />
98
- <RemoteLiveStreamRequestApprove
99
- uid={userUID}
100
- toastId={raiseHandList[userUID].ts}
101
- />
102
- </View>
103
- </View>
104
- ) : (
105
- <View style={{alignSelf: 'center'}} key={index}>
106
- <Text>{noUserFoundLabel}</Text>
51
+ <ParticipantSectionTitle
52
+ title={raisedHandsListTitleLabel + ' '}
53
+ count={Object.keys(activeLiveStreamRequests).length}
54
+ />
55
+ <View style={p_style.participantContainer}>
56
+ {Object.keys(raiseHandList).length == 0 ||
57
+ Object.keys(activeLiveStreamRequests).length == 0 ? (
58
+ <Text style={p_style.infoText}>{noLiveStreamingRequestsLabel}</Text>
59
+ ) : (
60
+ Object.keys(activeLiveStreamRequests).map(
61
+ (userUID: any, index: number) =>
62
+ renderList[userUID] ? (
63
+ <View style={p_style.participantRow} key={index}>
64
+ <ParticipantName
65
+ value={renderList[userUID]?.name || remoteUserDefaultLabel}
66
+ />
67
+ <View style={p_style.participantActionContainer}>
68
+ <RemoteLiveStreamRequestApprove uid={userUID} />
69
+ <RemoteLiveStreamRequestReject uid={userUID} />
107
70
  </View>
108
- ),
109
- )
110
- ) : (
111
- <Spacer size={1} />
112
- )}
113
- </>
114
- )}
71
+ </View>
72
+ ) : (
73
+ <View style={p_style.participantRow} key={index}>
74
+ <ParticipantName value={noUserFoundLabel} />
75
+ </View>
76
+ ),
77
+ )
78
+ )}
79
+ </View>
115
80
  </>
116
81
  );
117
82
  };
118
- const styles = StyleSheet.create({
119
- btnContainer: {
120
- flex: 1,
121
- flexDirection: 'row',
122
- justifyContent: 'center',
123
- alignItems: 'center',
124
- },
125
- container: {
126
- flex: 1,
127
- flexDirection: 'row',
128
- paddingHorizontal: 20,
129
- paddingVertical: 16,
130
- justifyContent: 'space-between',
131
- },
132
- userInfoContainer: {
133
- flex: 0.7,
134
- flexDirection: 'row',
135
- },
136
- participantNameText: {
137
- fontWeight: '400',
138
- fontSize: 12,
139
- fontFamily: 'Source Sans Pro',
140
- flexDirection: 'row',
141
- color: $config.FONT_COLOR,
142
- textAlign: 'left',
143
- marginHorizontal: 8,
144
- },
145
- });
146
83
 
147
84
  export default CurrentLiveStreamRequestsView;