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
@@ -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;