agora-appbuilder-core 4.0.0-api.5 → 4.0.0-api.6

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 (406) hide show
  1. package/package.json +2 -2
  2. package/template/.bundle/config +2 -0
  3. package/template/Gemfile +4 -0
  4. package/template/Gulpfile.js +29 -29
  5. package/template/_eslintrc.js +3 -3
  6. package/template/_gitignore +12 -11
  7. package/template/_package-lock.json +26471 -22749
  8. package/template/_prettierrc.js +2 -2
  9. package/template/agora-rn-uikit/src/Contexts/PropsContext.tsx +30 -10
  10. package/template/agora-rn-uikit/src/Contexts/RtcContext.tsx +19 -0
  11. package/template/agora-rn-uikit/src/Controls/BtnTemplate.tsx +1 -0
  12. package/template/agora-rn-uikit/src/Controls/Icons.ts +45 -0
  13. package/template/agora-rn-uikit/src/Controls/Local/EndCall.tsx +6 -4
  14. package/template/agora-rn-uikit/src/Controls/Local/FullScreen.tsx +3 -1
  15. package/template/agora-rn-uikit/src/Controls/Local/LocalAudioMute.tsx +1 -0
  16. package/template/agora-rn-uikit/src/Controls/Local/LocalVideoMute.tsx +1 -0
  17. package/template/agora-rn-uikit/src/Controls/Local/SwitchCamera.tsx +1 -0
  18. package/template/agora-rn-uikit/src/Controls/Remote/RemoteAudioMute.tsx +1 -0
  19. package/template/agora-rn-uikit/src/Controls/Remote/RemoteSwap.tsx +3 -1
  20. package/template/agora-rn-uikit/src/Controls/Remote/RemoteVideoMute.tsx +1 -0
  21. package/template/agora-rn-uikit/src/Reducer/ActiveSpeaker.ts +30 -0
  22. package/template/agora-rn-uikit/src/Reducer/LocalMuteAudio.ts +3 -1
  23. package/template/agora-rn-uikit/src/Reducer/LocalMuteVideo.ts +3 -1
  24. package/template/agora-rn-uikit/src/Reducer/LocalPermissionState.ts +1 -1
  25. package/template/agora-rn-uikit/src/Reducer/RemoteAudioStateChanged.ts +3 -3
  26. package/template/agora-rn-uikit/src/Reducer/RemoteVideoStateChanged.ts +5 -4
  27. package/template/agora-rn-uikit/src/Reducer/UpdateDualStreamMode.ts +1 -1
  28. package/template/agora-rn-uikit/src/Reducer/UserJoined.ts +8 -5
  29. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteAudio.ts +1 -1
  30. package/template/agora-rn-uikit/src/Reducer/UserMuteRemoteVideo.ts +1 -1
  31. package/template/agora-rn-uikit/src/Reducer/UserOffline.ts +1 -1
  32. package/template/agora-rn-uikit/src/Reducer/UserPin.ts +18 -1
  33. package/template/agora-rn-uikit/src/Reducer/UserSecondaryPin.ts +23 -0
  34. package/template/agora-rn-uikit/src/Reducer/index.ts +2 -0
  35. package/template/agora-rn-uikit/src/Rtc/Create.tsx +47 -21
  36. package/template/agora-rn-uikit/src/Rtc/Join.tsx +37 -15
  37. package/template/agora-rn-uikit/src/RtcConfigure.tsx +122 -12
  38. package/template/agora-rn-uikit/src/Views/MaxVideoView.native.tsx +32 -4
  39. package/template/agora-rn-uikit/src/Views/MaxVideoView.tsx +21 -2
  40. package/template/agora-rn-uikit/src/Views/MinVideoView.tsx +2 -0
  41. package/template/android/app/build.gradle +59 -156
  42. package/template/android/app/src/debug/AndroidManifest.xml +6 -1
  43. package/template/android/app/src/debug/java/com/helloworld/ReactNativeFlipper.java +7 -4
  44. package/template/android/app/src/main/AndroidManifest.xml +6 -19
  45. package/template/android/app/src/main/assets/fonts/icomoon.ttf +0 -0
  46. package/template/android/app/src/main/java/com/helloworld/MainActivity.java +17 -0
  47. package/template/android/app/src/main/java/com/helloworld/MainApplication.java +19 -36
  48. package/template/android/app/src/release/java/com/helloworld/ReactNativeFlipper.java +20 -0
  49. package/template/android/build.gradle +19 -33
  50. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  51. package/template/android/gradle/wrapper/gradle-wrapper.properties +3 -2
  52. package/template/android/gradle.properties +18 -4
  53. package/template/android/gradlew +165 -104
  54. package/template/android/gradlew.bat +12 -23
  55. package/template/android/settings.gradle +1 -0
  56. package/template/bridge/rtc/webNg/RtcEngine.ts +131 -16
  57. package/template/bridge/rtc/webNg/index.ts +72 -1
  58. package/template/bridge/rtm/web/index.ts +5 -3
  59. package/template/configTransform.js +16 -1
  60. package/template/customization-api/action-library.ts +0 -8
  61. package/template/customization-api/app-state.ts +11 -2
  62. package/template/customization-api/customEvents.ts +6 -1
  63. package/template/customization-api/index.ts +4 -0
  64. package/template/customization-api/sub-components.ts +6 -3
  65. package/template/customization-api/temp.ts +50 -0
  66. package/template/customization-api/typeDefinition.ts +26 -14
  67. package/template/customization-api/types.ts +26 -0
  68. package/template/customization-api/utils.ts +2 -0
  69. package/template/customization-implementation/index.ts +0 -1
  70. package/template/defaultConfig.js +72 -0
  71. package/template/global.d.ts +13 -1
  72. package/template/index.js +0 -4
  73. package/template/index.web.js +0 -5
  74. package/template/index.wsdk.tsx +1 -19
  75. package/template/ios/.xcode.env +11 -0
  76. package/template/ios/HelloWorld/AppDelegate.h +2 -4
  77. package/template/ios/HelloWorld/AppDelegate.mm +42 -0
  78. package/template/ios/HelloWorld/Info.plist +1 -1
  79. package/template/ios/HelloWorld/main.m +2 -1
  80. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +529 -17
  81. package/template/ios/HelloWorld.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  82. package/template/ios/HelloWorld.xcworkspace/contents.xcworkspacedata +10 -0
  83. package/template/ios/HelloWorld.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  84. package/template/ios/HelloWorldTests/HelloWorldTests.m +14 -13
  85. package/template/ios/HelloWorldTests/Info.plist +2 -2
  86. package/template/ios/Podfile +53 -20
  87. package/template/ios/Podfile.lock +873 -0
  88. package/template/ios/ScreenSharing/Info.plist +15 -0
  89. package/template/ios/ScreenSharing/SampleHandler.h +9 -0
  90. package/template/ios/ScreenSharing/SampleHandler.m +70 -0
  91. package/template/jest.config.js +4 -0
  92. package/template/metro.config.js +7 -32
  93. package/template/package.json +52 -39
  94. package/template/react-native-toast-message/index.d.ts +3 -1
  95. package/template/react-native-toast-message/index.js +1 -0
  96. package/template/react-native-toast-message/src/components/base/index.js +20 -32
  97. package/template/react-native-toast-message/src/components/base/styles.js +18 -21
  98. package/template/react-native-toast-message/src/components/checkbox.js +24 -19
  99. package/template/react-native-toast-message/src/index.js +3 -1
  100. package/template/react-native-toast-message/src/index.sdk.tsx +4 -1
  101. package/template/src/App.tsx +13 -85
  102. package/template/src/AppRoutes.tsx +77 -0
  103. package/template/src/AppWrapper.tsx +38 -33
  104. package/template/src/SDKAppWrapper.tsx +79 -43
  105. package/template/src/app-state/useNoiseSupression.native.tsx +67 -0
  106. package/template/src/app-state/useNoiseSupression.tsx +107 -0
  107. package/template/src/app-state/useVideoQuality.tsx +39 -0
  108. package/template/src/assets/font-styles.css +171 -3
  109. package/template/src/assets/fonts/icomoon.ttf +0 -0
  110. package/template/src/assets/selection.json +1 -1
  111. package/template/src/atoms/ActionMenu.tsx +50 -11
  112. package/template/src/atoms/Avatar.tsx +51 -0
  113. package/template/src/atoms/Card.tsx +21 -8
  114. package/template/src/atoms/Carousel.native.tsx +105 -0
  115. package/template/src/atoms/Carousel.tsx +103 -0
  116. package/template/src/atoms/Checkbox.tsx +98 -0
  117. package/template/src/atoms/CircularProgress.tsx +0 -1
  118. package/template/src/atoms/ClipboardIconButton.tsx +91 -0
  119. package/template/src/atoms/CustomIcon.tsx +45 -0
  120. package/template/src/atoms/DropDownMulti.tsx +349 -0
  121. package/template/src/atoms/Dropdown.tsx +3 -3
  122. package/template/src/atoms/IconButton.tsx +52 -9
  123. package/template/src/atoms/ImageIcon.tsx +6 -3
  124. package/template/src/atoms/InlineNotification.tsx +81 -0
  125. package/template/src/atoms/MeetingLink.tsx +160 -0
  126. package/template/src/atoms/ParticipantsCount.tsx +18 -7
  127. package/template/src/atoms/Popup.tsx +49 -27
  128. package/template/src/atoms/PrimaryButton.tsx +19 -5
  129. package/template/src/atoms/RecordingInfo.tsx +2 -2
  130. package/template/src/atoms/SecondaryButton.tsx +2 -0
  131. package/template/src/atoms/Spacer.tsx +1 -0
  132. package/template/src/atoms/TertiaryButton.tsx +35 -5
  133. package/template/src/atoms/TextInput.tsx +2 -1
  134. package/template/src/atoms/Toolbar.tsx +64 -30
  135. package/template/src/atoms/ToolbarItem.tsx +11 -5
  136. package/template/src/atoms/ToolbarPreset.tsx +13 -2
  137. package/template/src/atoms/Tooltip.tsx +26 -4
  138. package/template/src/auth/AuthProvider.tsx +500 -0
  139. package/template/src/auth/AuthRoute.tsx +94 -0
  140. package/template/src/auth/IDPAuth.electron.tsx +31 -0
  141. package/template/src/auth/IDPAuth.tsx +67 -0
  142. package/template/src/auth/IDPLogoutComponent.tsx +158 -0
  143. package/template/src/auth/UserCancelPopup.tsx +115 -0
  144. package/template/src/auth/config.ts +52 -0
  145. package/template/src/auth/openIDPURL.electron.tsx +39 -0
  146. package/template/src/auth/openIDPURL.native.tsx +51 -0
  147. package/template/src/auth/openIDPURL.tsx +20 -0
  148. package/template/src/auth/useIDPAuth.electron.tsx +65 -0
  149. package/template/src/auth/useIDPAuth.native.tsx +70 -0
  150. package/template/src/auth/useIDPAuth.tsx +63 -0
  151. package/template/src/auth/useTokenAuth.tsx +194 -0
  152. package/template/src/components/Chat.tsx +5 -8
  153. package/template/src/components/ChatContext.ts +4 -0
  154. package/template/src/components/ColorConfigure.tsx +0 -1
  155. package/template/src/components/CommonStyles.ts +9 -2
  156. package/template/src/components/Controls.tsx +659 -52
  157. package/template/src/components/DeviceConfigure.tsx +362 -156
  158. package/template/src/components/DeviceContext.tsx +2 -0
  159. package/template/src/components/EventsConfigure.tsx +713 -109
  160. package/template/src/components/GraphQLProvider.tsx +62 -36
  161. package/template/src/components/GridVideo.tsx +23 -13
  162. package/template/src/components/HostControlView.tsx +11 -14
  163. package/template/src/components/JoinPhrase.tsx +0 -1
  164. package/template/src/components/Leftbar.tsx +4 -3
  165. package/template/src/components/Navbar.tsx +110 -42
  166. package/template/src/components/NavbarMobile.tsx +47 -36
  167. package/template/src/components/Navigation.native.tsx +1 -15
  168. package/template/src/{subComponents/screenshare/ScreenshareButton.native.tsx → components/Navigation.sdk.tsx} +17 -3
  169. package/template/src/components/Navigation.tsx +1 -15
  170. package/template/src/components/ParticipantsView.tsx +56 -48
  171. package/template/src/components/PinnedVideo.tsx +188 -114
  172. package/template/src/components/Precall.native.tsx +169 -67
  173. package/template/src/components/Precall.tsx +237 -71
  174. package/template/src/components/RTMConfigure.tsx +167 -55
  175. package/template/src/components/Rightbar.tsx +4 -3
  176. package/template/src/components/Router.electron.ts +1 -0
  177. package/template/src/components/Router.native.ts +1 -0
  178. package/template/src/components/Router.sdk.ts +1 -0
  179. package/template/src/components/Router.ts +1 -0
  180. package/template/src/components/SdkApiContext.tsx +179 -27
  181. package/template/src/components/SdkMuteToggleListener.tsx +88 -0
  182. package/template/src/components/SessionContext.tsx +0 -1
  183. package/template/src/components/Settings.tsx +25 -3
  184. package/template/src/components/SettingsView.tsx +44 -9
  185. package/template/src/components/Share.tsx +149 -71
  186. package/template/src/components/StorageContext.tsx +19 -5
  187. package/template/src/components/ToastComponent.tsx +3 -0
  188. package/template/src/components/WhiteboardLayout.tsx +291 -0
  189. package/template/src/components/chat-messages/useChatMessages.tsx +420 -207
  190. package/template/src/components/common/Error.tsx +2 -0
  191. package/template/src/components/common/Logo.tsx +2 -2
  192. package/template/src/components/contexts/LiveStreamDataContext.tsx +5 -4
  193. package/template/src/components/contexts/ScreenShareContext.tsx +15 -1
  194. package/template/src/components/contexts/WaitingRoomContext.tsx +50 -0
  195. package/template/src/components/contexts/WhiteboardContext.tsx +54 -54
  196. package/template/src/components/disable-chat/useDisableChat.tsx +32 -0
  197. package/template/src/components/livestream/LiveStreamContext.tsx +262 -177
  198. package/template/src/components/livestream/Types.ts +34 -18
  199. package/template/src/components/livestream/views/LiveStreamAttendeeLandingTile.tsx +295 -0
  200. package/template/src/components/livestream/views/LiveStreamControls.tsx +2 -4
  201. package/template/src/components/meeting-info-invite/MeetingInfo.tsx +82 -0
  202. package/template/src/components/meeting-info-invite/MeetingInfoCardHeader.tsx +86 -0
  203. package/template/src/components/meeting-info-invite/MeetingInfoGridTile.tsx +218 -0
  204. package/template/src/components/meeting-info-invite/MeetingInfoLinks.tsx +122 -0
  205. package/template/src/components/participants/AllAudienceParticipants.tsx +4 -5
  206. package/template/src/components/participants/AllHostParticipants.tsx +5 -6
  207. package/template/src/components/participants/Participant.tsx +40 -9
  208. package/template/src/components/participants/ParticipantSectionTitle.tsx +5 -2
  209. package/template/src/components/participants/ScreenshareParticipants.tsx +15 -17
  210. package/template/src/components/participants/UserActionMenuOptions.tsx +157 -49
  211. package/template/src/components/participants/WaitingRoomParticipants.tsx +74 -0
  212. package/template/src/components/popups/InvitePopup.tsx +110 -45
  213. package/template/src/components/popups/StartScreenSharePopup.native.tsx +182 -0
  214. package/template/src/components/popups/StartScreenSharePopup.tsx +6 -0
  215. package/template/src/components/popups/StopRecordingPopup.tsx +11 -5
  216. package/template/src/components/popups/StopScreenSharePopup.native.tsx +135 -0
  217. package/template/src/components/popups/StopScreenSharePopup.tsx +6 -0
  218. package/template/src/components/popups/WhiteboardClearAllPopup.tsx +123 -0
  219. package/template/src/components/precall/LocalMute.tsx +69 -45
  220. package/template/src/components/precall/PermissionHelper.tsx +52 -24
  221. package/template/src/components/precall/PreCallSettings.tsx +1 -0
  222. package/template/src/components/precall/VideoFallback.tsx +173 -0
  223. package/template/src/components/precall/VideoPreview.native.tsx +16 -50
  224. package/template/src/components/precall/VideoPreview.tsx +27 -162
  225. package/template/src/components/precall/index.tsx +2 -0
  226. package/template/src/components/precall/joinCallBtn.native.tsx +10 -3
  227. package/template/src/components/precall/joinCallBtn.tsx +11 -2
  228. package/template/src/components/precall/joinWaitingRoomBtn.native.tsx +210 -0
  229. package/template/src/components/precall/joinWaitingRoomBtn.tsx +250 -0
  230. package/template/src/components/precall/meetingTitle.tsx +35 -9
  231. package/template/src/components/precall/selectDevice.tsx +5 -5
  232. package/template/src/components/precall/textInput.tsx +16 -18
  233. package/template/src/components/precall/usePreCall.tsx +14 -4
  234. package/template/src/components/room-info/useRoomInfo.tsx +34 -0
  235. package/template/src/components/useShareLink.tsx +24 -59
  236. package/template/src/components/useUserPreference.tsx +73 -10
  237. package/template/src/components/useVideoCall.tsx +76 -3
  238. package/template/src/components/virtual-background/VBButton.tsx +64 -0
  239. package/template/src/components/virtual-background/VBCard.native.tsx +282 -0
  240. package/template/src/components/virtual-background/VBCard.tsx +272 -0
  241. package/template/src/components/virtual-background/VBPanel.tsx +279 -0
  242. package/template/src/components/virtual-background/VButils.native.ts +37 -0
  243. package/template/src/components/virtual-background/VButils.ts +104 -0
  244. package/template/src/components/virtual-background/VideoPreview.native.tsx +43 -0
  245. package/template/src/components/virtual-background/VideoPreview.tsx +106 -0
  246. package/template/src/components/virtual-background/imagePaths.ts +87 -0
  247. package/template/src/components/virtual-background/images/beachImageBase64.ts +1 -0
  248. package/template/src/components/virtual-background/images/bedroomImageBase64.ts +1 -0
  249. package/template/src/components/virtual-background/images/bookImageBase64.ts +1 -0
  250. package/template/src/components/virtual-background/images/earthImageBase64.ts +1 -0
  251. package/template/src/components/virtual-background/images/index.ts +37 -0
  252. package/template/src/components/virtual-background/images/lampImageBase64.ts +1 -0
  253. package/template/src/components/virtual-background/images/mountainsImageBase64.ts +1 -0
  254. package/template/src/components/virtual-background/images/office1ImageBase64.ts +1 -0
  255. package/template/src/components/virtual-background/images/officeImageBase64.ts +1 -0
  256. package/template/src/components/virtual-background/images/plantsImageBase64.ts +1 -0
  257. package/template/src/components/virtual-background/images/skyImageBase64.ts +1 -0
  258. package/template/src/components/virtual-background/images/wallImageBase64.ts +1 -0
  259. package/template/src/components/virtual-background/useVB.native.tsx +188 -0
  260. package/template/src/components/virtual-background/useVB.tsx +267 -0
  261. package/template/src/components/whiteboard/StrokeWidthTool.tsx +137 -0
  262. package/template/src/components/whiteboard/WhiteboardButton.tsx +93 -0
  263. package/template/src/components/whiteboard/WhiteboardCanvas.tsx +99 -0
  264. package/template/src/components/whiteboard/WhiteboardConfigure.native.tsx +137 -0
  265. package/template/src/components/whiteboard/WhiteboardConfigure.tsx +441 -0
  266. package/template/src/components/whiteboard/WhiteboardCursor.tsx +152 -0
  267. package/template/src/components/whiteboard/WhiteboardToolBox.tsx +1246 -0
  268. package/template/src/components/whiteboard/WhiteboardView.native.tsx +109 -0
  269. package/template/src/components/whiteboard/WhiteboardView.tsx +81 -0
  270. package/template/src/components/whiteboard/WhiteboardWidget.tsx +674 -0
  271. package/template/src/components/whiteboard/WhiteboardWrapper.tsx +38 -0
  272. package/template/src/language/default-labels/commonLabels.ts +51 -14
  273. package/template/src/language/default-labels/createScreenLabels.ts +97 -17
  274. package/template/src/language/default-labels/joinScreenLabels.ts +45 -6
  275. package/template/src/language/default-labels/precallScreenLabels.ts +145 -23
  276. package/template/src/language/default-labels/shareLinkScreenLabels.ts +85 -37
  277. package/template/src/language/default-labels/videoCallScreenLabels.ts +1137 -158
  278. package/template/src/pages/Create.tsx +125 -80
  279. package/template/src/pages/Join.tsx +76 -34
  280. package/template/src/pages/Login.tsx +26 -0
  281. package/template/src/pages/VideoCall.tsx +229 -114
  282. package/template/src/pages/video-call/ActionSheet.native.tsx +54 -7
  283. package/template/src/pages/video-call/ActionSheet.tsx +55 -16
  284. package/template/src/pages/video-call/ActionSheetContent.tsx +366 -291
  285. package/template/src/pages/video-call/ActionSheetHandle.tsx +7 -1
  286. package/template/src/pages/video-call/DefaultLayouts.ts +11 -5
  287. package/template/src/pages/video-call/NameWithMicIcon.tsx +17 -9
  288. package/template/src/pages/video-call/PinchableView.tsx +119 -0
  289. package/template/src/pages/video-call/RenderComponent.tsx +12 -3
  290. package/template/src/pages/video-call/SidePanelHeader.tsx +208 -6
  291. package/template/src/pages/video-call/VideoCallMobileView.tsx +140 -106
  292. package/template/src/pages/video-call/VideoCallScreen.native.tsx +3 -2
  293. package/template/src/pages/video-call/VideoCallScreen.tsx +113 -66
  294. package/template/src/pages/video-call/VideoComponent.tsx +53 -5
  295. package/template/src/pages/video-call/VideoRenderer.tsx +309 -52
  296. package/template/src/pages/video-call/VisibilitySensor.tsx +104 -0
  297. package/template/src/pages/video-call/ZoomableWrapper.native.tsx +34 -0
  298. package/template/src/pages/video-call/ZoomableWrapper.tsx +5 -0
  299. package/template/src/pages/video-call/index.ts +2 -0
  300. package/template/src/rtm/RTMEngine.ts +9 -4
  301. package/template/src/rtm-events/constants.ts +20 -0
  302. package/template/src/rtm-events-api/Events.ts +2 -0
  303. package/template/src/rtm-events-api/LocalEvents.ts +8 -0
  304. package/template/src/selection.json +1 -0
  305. package/template/src/subComponents/ChatBubble.tsx +81 -64
  306. package/template/src/subComponents/ChatContainer.tsx +20 -13
  307. package/template/src/subComponents/ChatInput.ios.tsx +11 -2
  308. package/template/src/subComponents/ChatInput.tsx +12 -3
  309. package/template/src/subComponents/Checkbox.native.tsx +46 -46
  310. package/template/src/subComponents/Checkbox.tsx +7 -6
  311. package/template/src/subComponents/CopyJoinInfo.tsx +26 -11
  312. package/template/src/subComponents/EndcallPopup.tsx +83 -12
  313. package/template/src/subComponents/LanguageSelector.tsx +34 -30
  314. package/template/src/subComponents/LayoutIconButton.tsx +30 -8
  315. package/template/src/subComponents/LayoutIconDropdown.tsx +19 -3
  316. package/template/src/subComponents/Loading.tsx +60 -0
  317. package/template/src/subComponents/LocalAudioMute.tsx +106 -30
  318. package/template/src/subComponents/LocalEndCall.tsx +91 -15
  319. package/template/src/subComponents/LocalSwitchCamera.tsx +50 -11
  320. package/template/src/subComponents/LocalVideoMute.tsx +126 -32
  321. package/template/src/subComponents/LogoutButton.tsx +1 -1
  322. package/template/src/subComponents/NetworkQualityPill.tsx +14 -31
  323. package/template/src/subComponents/Recording.tsx +23 -6
  324. package/template/src/subComponents/RemoteAudioMute.tsx +3 -3
  325. package/template/src/subComponents/RemoteMutePopup.tsx +55 -14
  326. package/template/src/subComponents/RemoteVideoMute.tsx +3 -3
  327. package/template/src/subComponents/RemoveMeetingPopup.tsx +19 -6
  328. package/template/src/subComponents/RemoveScreensharePopup.tsx +20 -5
  329. package/template/src/subComponents/ScreenShareNotice.tsx +11 -6
  330. package/template/src/subComponents/SelectDevice.tsx +98 -32
  331. package/template/src/subComponents/SidePanelEnum.tsx +2 -0
  332. package/template/src/subComponents/SidePanelHeader.tsx +97 -63
  333. package/template/src/subComponents/ToastConfig.tsx +70 -61
  334. package/template/src/subComponents/caption/Caption.tsx +130 -0
  335. package/template/src/subComponents/caption/CaptionContainer.tsx +302 -0
  336. package/template/src/subComponents/caption/CaptionIcon.tsx +111 -0
  337. package/template/src/subComponents/caption/CaptionText.tsx +182 -0
  338. package/template/src/subComponents/caption/DownloadTranscriptBtn.tsx +65 -0
  339. package/template/src/subComponents/caption/LanguageSelectorPopup.tsx +192 -0
  340. package/template/src/subComponents/caption/Transcript.tsx +449 -0
  341. package/template/src/subComponents/caption/TranscriptIcon.tsx +123 -0
  342. package/template/src/subComponents/caption/TranscriptText.tsx +98 -0
  343. package/template/src/subComponents/caption/index.ts +3 -0
  344. package/template/src/subComponents/caption/proto/ptoto.js +91 -0
  345. package/template/src/subComponents/caption/proto/test.proto +23 -0
  346. package/template/src/subComponents/caption/useCaption.tsx +123 -0
  347. package/template/src/subComponents/caption/useCaptionWidth.ts +27 -0
  348. package/template/src/subComponents/caption/useSTTAPI.tsx +179 -0
  349. package/template/src/subComponents/caption/useStreamMessageUtils.native.ts +211 -0
  350. package/template/src/subComponents/caption/useStreamMessageUtils.ts +235 -0
  351. package/template/src/subComponents/caption/useTranscriptDownload.native.ts +68 -0
  352. package/template/src/subComponents/caption/useTranscriptDownload.ts +52 -0
  353. package/template/src/subComponents/caption/utils.ts +125 -0
  354. package/template/src/subComponents/chat/ChatParticipants.tsx +53 -17
  355. package/template/src/subComponents/livestream/CurrentLiveStreamRequestsView.tsx +11 -13
  356. package/template/src/subComponents/livestream/controls/LocalRaiseHand.tsx +33 -9
  357. package/template/src/subComponents/livestream/controls/RemoteLiveStreamApprovedRequestRecall.tsx +1 -0
  358. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestApprove.tsx +10 -6
  359. package/template/src/subComponents/livestream/controls/RemoteLiveStreamRequestReject.tsx +28 -19
  360. package/template/src/subComponents/recording/useRecording.tsx +49 -20
  361. package/template/src/subComponents/recording/useRecordingLayoutQuery.tsx +0 -1
  362. package/template/src/subComponents/screenshare/ScreenshareButton.tsx +29 -10
  363. package/template/src/subComponents/screenshare/ScreenshareConfigure.native.tsx +270 -66
  364. package/template/src/subComponents/screenshare/ScreenshareConfigure.tsx +182 -95
  365. package/template/src/subComponents/screenshare/useScreenshare.tsx +2 -0
  366. package/template/src/subComponents/waiting-rooms/WaitingRoomControls.tsx +85 -0
  367. package/template/src/subComponents/waiting-rooms/useWaitingRoomAPI.ts +75 -0
  368. package/template/src/theme/index.ts +9 -0
  369. package/template/src/utils/SdkEvents.ts +14 -0
  370. package/template/src/utils/SdkMethodEvents.ts +23 -3
  371. package/template/src/utils/axiomLogger.ts +117 -0
  372. package/template/src/utils/book.jpg +0 -0
  373. package/template/src/utils/common.tsx +118 -6
  374. package/template/src/utils/endCallEveryOne.ts +7 -0
  375. package/template/src/utils/getCustomRoute.ts +7 -0
  376. package/template/src/utils/index.tsx +23 -0
  377. package/template/src/utils/useActionSheet.tsx +50 -0
  378. package/template/src/utils/useActiveSpeaker.ts +3 -7
  379. package/template/src/utils/useAppState.ts +17 -0
  380. package/template/src/utils/useAsyncEffect.ts +138 -0
  381. package/template/src/utils/useCreateRoom.ts +8 -12
  382. package/template/src/utils/useDisableButton.tsx +37 -0
  383. package/template/src/utils/useFindActiveSpeaker.native.ts +4 -0
  384. package/template/src/utils/useFindActiveSpeaker.ts +335 -0
  385. package/template/src/utils/useIsLocalUserSpeaking.native.ts +4 -0
  386. package/template/src/utils/useIsLocalUserSpeaking.ts +98 -0
  387. package/template/src/utils/useJoinRoom.ts +97 -36
  388. package/template/src/utils/useMuteToggleLocal.ts +114 -96
  389. package/template/src/utils/useString.ts +13 -3
  390. package/template/static.d.ts +42 -0
  391. package/template/tsconfig_rsdk_index.json +3 -3
  392. package/template/tsconfig_wsdk_index.json +1 -1
  393. package/template/web/index.html +20 -0
  394. package/template/webpack.commons.js +21 -10
  395. package/template/webpack.web.config.js +7 -3
  396. package/template/_buckconfig +0 -6
  397. package/template/_gitattributes +0 -1
  398. package/template/android/app/_BUCK +0 -55
  399. package/template/android/app/build_defs.bzl +0 -19
  400. package/template/ios/HelloWorld/AppDelegate.m +0 -74
  401. package/template/src/components/OAuth.electron.tsx +0 -41
  402. package/template/src/components/OAuth.native.tsx +0 -55
  403. package/template/src/components/OAuth.tsx +0 -30
  404. package/template/src/components/OAuthConfig.ts +0 -77
  405. package/template/src/components/Settings.native.tsx +0 -21
  406. package/template/src/components/StoreToken.tsx +0 -39
@@ -20,6 +20,10 @@ import ThemeConfig from '../theme';
20
20
  import hexadecimalTransparency from '../utils/hexadecimalTransparency';
21
21
  import {useLayout} from 'customization-api';
22
22
  import {getPinnedLayoutName} from '../pages/video-call/DefaultLayouts';
23
+ import {
24
+ videoRoomScreenshareOverlayText,
25
+ videoRoomScreenshareStopSharingBtnText,
26
+ } from '../language/default-labels/videoCallScreenLabels';
23
27
  /**
24
28
  *
25
29
  * @param uid - uid of the user
@@ -28,13 +32,14 @@ import {getPinnedLayoutName} from '../pages/video-call/DefaultLayouts';
28
32
  *
29
33
  */
30
34
  function ScreenShareNotice({uid, isMax}: {uid: UidType; isMax: boolean}) {
31
- //commented for v1 release
32
- // const screensharingActiveOverlayLabel = useString(
33
- // 'screensharingActiveOverlayLabel',
34
- // )();
35
+ const screensharingActiveOverlayLabel = useString(
36
+ videoRoomScreenshareOverlayText,
37
+ )();
38
+ const stopsharingbtnText = useString(
39
+ videoRoomScreenshareStopSharingBtnText,
40
+ )();
35
41
  const {currentLayout} = useLayout();
36
42
  const {stopUserScreenShare} = useScreenshare();
37
- const screensharingActiveOverlayLabel = 'You are sharing your screen';
38
43
  const {rtcProps} = useContext(PropsContext);
39
44
  return uid === rtcProps?.screenShareUid ? (
40
45
  <View style={styles.screenSharingMessageContainer}>
@@ -61,7 +66,7 @@ function ScreenShareNotice({uid, isMax}: {uid: UidType; isMax: boolean}) {
61
66
  />
62
67
  </View>
63
68
  <View style={styles.btnTextContainer}>
64
- <Text style={styles.btnText}>Stop Sharing</Text>
69
+ <Text style={styles.btnText}>{stopsharingbtnText}</Text>
65
70
  </View>
66
71
  </TouchableOpacity>
67
72
  )}
@@ -27,6 +27,20 @@ import {usePreCall} from '../components/precall/usePreCall';
27
27
  import ThemeConfig from '../theme';
28
28
  import {randomNameGenerator} from '../utils';
29
29
  import pendingStateUpdateHelper from '../utils/pendingStateUpdateHelper';
30
+ import InlineNotification from '../atoms/InlineNotification';
31
+ import {
32
+ settingsPanelCameraLabel,
33
+ settingsPanelLiveStreamingAttendeeInfo,
34
+ settingsPanelMicrophoneLabel,
35
+ settingsPanelNoCameraDetectedText,
36
+ settingsPanelNoCameraSelectedText,
37
+ settingsPanelNoMicrophoneDetectedText,
38
+ settingsPanelNoMicrophoneSelectedText,
39
+ settingsPanelNoSpeakerDetectedText,
40
+ settingsPanelSpeakerLabel,
41
+ settingsPanelSystemDefaultSpeakerText,
42
+ settingsPanelUpdatingText,
43
+ } from '../language/default-labels/precallScreenLabels';
30
44
  // import {dropdown} from '../../theme.json';
31
45
 
32
46
  /*
@@ -85,7 +99,7 @@ const SelectVideoDevice = (props: SelectVideoDeviceProps) => {
85
99
 
86
100
  const data = useMemo(() => {
87
101
  return deviceList
88
- .filter((device) => {
102
+ .filter(device => {
89
103
  if (device.kind === 'videoinput') {
90
104
  return true;
91
105
  }
@@ -102,7 +116,7 @@ const SelectVideoDevice = (props: SelectVideoDeviceProps) => {
102
116
 
103
117
  useEffect(() => {
104
118
  const selectedDeviceExists = Boolean(
105
- data.find((device) => device.value === selectedCam),
119
+ data.find(device => device.value === selectedCam),
106
120
  );
107
121
  if (isPendingUpdate) {
108
122
  selectedDeviceExists && setIsPendingUpdate(false);
@@ -114,11 +128,16 @@ const SelectVideoDevice = (props: SelectVideoDeviceProps) => {
114
128
  const isPermissionGranted =
115
129
  local.permissionStatus === PermissionState.GRANTED_FOR_CAM_AND_MIC ||
116
130
  local.permissionStatus === PermissionState.GRANTED_FOR_CAM_ONLY;
131
+
132
+ const cameraLabel = useString(settingsPanelCameraLabel)();
133
+ const noCameraLabel = useString(settingsPanelNoCameraDetectedText)();
134
+ const noCameraSelectedLabel = useString(settingsPanelNoCameraSelectedText)();
135
+ const updateLabel = useString(settingsPanelUpdatingText)();
117
136
  return props?.render ? (
118
137
  props.render(selectedCam, setSelectedCam, deviceList, isPickerDisabled)
119
138
  ) : (
120
139
  <>
121
- <Text style={style.label}>Camera</Text>
140
+ <Text style={style.label}>{cameraLabel}</Text>
122
141
  <Dropdown
123
142
  icon={
124
143
  isPendingUpdate && isPermissionGranted
@@ -130,10 +149,10 @@ const SelectVideoDevice = (props: SelectVideoDeviceProps) => {
130
149
  enabled={!isPickerDisabled}
131
150
  label={
132
151
  !isPermissionGranted || !data || !data.length
133
- ? 'No Camera Detected'
152
+ ? noCameraLabel
134
153
  : isPendingUpdate
135
- ? 'Updating'
136
- : 'No Camera Selected'
154
+ ? updateLabel
155
+ : noCameraSelectedLabel
137
156
  }
138
157
  data={isPermissionGranted ? data : []}
139
158
  onSelect={({label, value}) => {
@@ -172,7 +191,7 @@ const SelectAudioDevice = (props: SelectAudioDeviceProps) => {
172
191
 
173
192
  const data = useMemo(() => {
174
193
  return deviceList
175
- .filter((device) => {
194
+ .filter(device => {
176
195
  if (device.kind === 'audioinput') {
177
196
  return true;
178
197
  }
@@ -189,7 +208,7 @@ const SelectAudioDevice = (props: SelectAudioDeviceProps) => {
189
208
 
190
209
  useEffect(() => {
191
210
  const selectedDeviceExists = Boolean(
192
- data.find((device) => device.value === selectedMic),
211
+ data.find(device => device.value === selectedMic),
193
212
  );
194
213
  if (isPendingUpdate) {
195
214
  selectedDeviceExists && setIsPendingUpdate(false);
@@ -201,11 +220,20 @@ const SelectAudioDevice = (props: SelectAudioDeviceProps) => {
201
220
  const isPermissionGranted =
202
221
  local.permissionStatus === PermissionState.GRANTED_FOR_CAM_AND_MIC ||
203
222
  local.permissionStatus === PermissionState.GRANTED_FOR_MIC_ONLY;
223
+
224
+ const microphoneLabel = useString(settingsPanelMicrophoneLabel)();
225
+ const noMicrophoneDetectedLabel = useString(
226
+ settingsPanelNoMicrophoneDetectedText,
227
+ )();
228
+ const updateLabel = useString(settingsPanelUpdatingText)();
229
+ const noMicrophoneSelectedLabel = useString(
230
+ settingsPanelNoMicrophoneSelectedText,
231
+ )();
204
232
  return props?.render ? (
205
233
  props.render(selectedMic, setSelectedMic, deviceList, isPickerDisabled)
206
234
  ) : (
207
235
  <View>
208
- <Text style={style.label}>Microphone</Text>
236
+ <Text style={style.label}>{microphoneLabel}</Text>
209
237
  <Dropdown
210
238
  icon={
211
239
  isPendingUpdate && isPermissionGranted
@@ -218,10 +246,10 @@ const SelectAudioDevice = (props: SelectAudioDeviceProps) => {
218
246
  selectedValue={selectedMic}
219
247
  label={
220
248
  !isPermissionGranted || !data || !data.length
221
- ? 'No Microphone Detected'
249
+ ? noMicrophoneDetectedLabel
222
250
  : isPendingUpdate
223
- ? 'Updating'
224
- : 'No Microphone Selected'
251
+ ? updateLabel
252
+ : noMicrophoneSelectedLabel
225
253
  }
226
254
  data={isPermissionGranted ? data : []}
227
255
  onSelect={({label, value}) => {
@@ -251,7 +279,7 @@ interface SelectSpeakerDeviceProps {
251
279
  }
252
280
 
253
281
  const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
254
- const {selectedSpeaker, setSelectedSpeaker, deviceList} =
282
+ const {selectedSpeaker, setSelectedSpeaker, deviceList, isChrome} =
255
283
  useContext(DeviceContext);
256
284
  const local = useContext(LocalContext);
257
285
  const [isPickerDisabled, btnTheme] = useSelectDevice();
@@ -261,12 +289,12 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
261
289
 
262
290
  const data = useMemo(() => {
263
291
  return deviceList
264
- .filter((device) => {
292
+ .filter(device => {
265
293
  if (device.kind === 'audiooutput') {
266
294
  return true;
267
295
  }
268
296
  })
269
- ?.map((device) => {
297
+ ?.map(device => {
270
298
  if (device.kind === 'audiooutput') {
271
299
  return {
272
300
  label: applyDefaultPrefixConditionally(device),
@@ -278,7 +306,7 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
278
306
 
279
307
  useEffect(() => {
280
308
  const selectedDeviceExists = Boolean(
281
- data.find((device) => device.value === selectedSpeaker),
309
+ data.find(device => device.value === selectedSpeaker),
282
310
  );
283
311
  if (isPendingUpdate) {
284
312
  selectedDeviceExists && setIsPendingUpdate(false);
@@ -287,6 +315,12 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
287
315
  }
288
316
  }, [selectedSpeaker, data]);
289
317
 
318
+ const speakerLabel = useString(settingsPanelSpeakerLabel)();
319
+ const speakerDefaultLabel = useString(
320
+ settingsPanelSystemDefaultSpeakerText,
321
+ )();
322
+ const noSpeakerLabel = useString(settingsPanelNoSpeakerDetectedText)();
323
+ const updateLabel = useString(settingsPanelUpdatingText)();
290
324
  return props?.render ? (
291
325
  props.render(
292
326
  selectedSpeaker,
@@ -296,10 +330,10 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
296
330
  )
297
331
  ) : (
298
332
  <View>
299
- <Text style={style.label}>Speaker</Text>
333
+ <Text style={style.label}>{speakerLabel}</Text>
300
334
  {(local.permissionStatus === PermissionState.GRANTED_FOR_CAM_AND_MIC ||
301
335
  local.permissionStatus === PermissionState.GRANTED_FOR_MIC_ONLY) &&
302
- (!data || data.length === 0) ? (
336
+ (!isChrome || !data || data.length === 0) ? (
303
337
  <Dropdown
304
338
  icon={props?.isIconDropdown ? 'speaker' : undefined}
305
339
  enabled={!isPickerDisabled}
@@ -308,7 +342,7 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
308
342
  data={[
309
343
  {
310
344
  value: newRandomDeviceId,
311
- label: 'System Default Speaker Device',
345
+ label: speakerDefaultLabel,
312
346
  },
313
347
  ]}
314
348
  onSelect={({label, value}) => {
@@ -336,9 +370,9 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
336
370
  selectedValue={selectedSpeaker}
337
371
  label={
338
372
  !data || !data.length
339
- ? 'No Speaker Detected'
373
+ ? noSpeakerLabel
340
374
  : isPendingUpdate
341
- ? 'Updating'
375
+ ? updateLabel
342
376
  : ''
343
377
  }
344
378
  data={data}
@@ -354,6 +388,7 @@ const SelectSpeakerDevice = (props: SelectSpeakerDeviceProps) => {
354
388
 
355
389
  interface SelectDeviceProps {
356
390
  isIconDropdown?: boolean;
391
+ isOnPrecall?: boolean;
357
392
  }
358
393
 
359
394
  const SelectDevice = (props: SelectDeviceProps) => {
@@ -361,7 +396,7 @@ const SelectDevice = (props: SelectDeviceProps) => {
361
396
  const {deviceList} = useContext(DeviceContext);
362
397
  const {setCameraAvailable, setMicAvailable, setSpeakerAvailable} =
363
398
  usePreCall();
364
-
399
+ const {isOnPrecall} = props;
365
400
  const [audioDevices, videoDevices, speakerDevices] = useMemo(
366
401
  () =>
367
402
  deviceList.reduce(
@@ -418,22 +453,53 @@ const SelectDevice = (props: SelectDeviceProps) => {
418
453
  }
419
454
  }, [speakerDevices]);
420
455
 
421
- //commented for v1 release
422
- // const settingScreenInfoMessage = useString('settingScreenInfoMessage')();
423
- // const settingScreenInfoMessage = $config.AUDIO_ROOM
424
- // ? 'Audio sharing is disabled for attendees. Raise hand to request permission to share.'
425
- // : 'Video and Audio sharing is disabled for attendees. Raise hand to request permission to share.';
426
- const settingScreenInfoMessage =
427
- 'Attendees need to raise their hand to access the devices.';
456
+ const settingScreenInfoMessage = useString(
457
+ settingsPanelLiveStreamingAttendeeInfo,
458
+ )();
459
+ if (isOnPrecall) {
460
+ return (
461
+ <>
462
+ <>
463
+ {$config.EVENT_MODE && isPickerDisabled && (
464
+ <>
465
+ <Spacer size={24} />
466
+ <InlineNotification
467
+ text={settingScreenInfoMessage}
468
+ warning={true}
469
+ customStyle={{
470
+ backgroundColor: 'rgba(255, 171, 0, 0.15)',
471
+ }}
472
+ />
473
+ </>
474
+ )}
475
+ <Spacer size={24} />
476
+ <SelectAudioDevice {...props} />
477
+ <Spacer size={24} />
478
+ <SelectSpeakerDevice {...props} />
479
+ <Spacer size={24} />
480
+ {!$config.AUDIO_ROOM && (
481
+ <>
482
+ <SelectVideoDevice {...props} />
483
+ <Spacer size={8} />
484
+ </>
485
+ )}
486
+ </>
487
+ </>
488
+ );
489
+ }
428
490
  return (
429
491
  <>
430
492
  <>
431
493
  {$config.EVENT_MODE && isPickerDisabled && (
432
494
  <>
433
495
  <Spacer size={24} />
434
- <View style={style.infoTxtContainer}>
435
- <Text style={style.infoTxt}>{settingScreenInfoMessage}</Text>
436
- </View>
496
+ <InlineNotification
497
+ text={settingScreenInfoMessage}
498
+ warning={true}
499
+ customStyle={{
500
+ backgroundColor: 'rgba(255, 171, 0, 0.15)',
501
+ }}
502
+ />
437
503
  </>
438
504
  )}
439
505
  <Spacer size={24} />
@@ -14,4 +14,6 @@ export enum SidePanelType {
14
14
  Participants,
15
15
  Chat,
16
16
  Settings,
17
+ Transcript,
18
+ VirtualBackground,
17
19
  }
@@ -4,6 +4,7 @@ import IconButton from '../atoms/IconButton';
4
4
  import ThemeConfig from '../theme';
5
5
  import {IconsInterface} from '../atoms/CustomIcon';
6
6
  import {isWebInternal} from '../utils/common';
7
+ import styles from 'react-native-toast-message/src/styles';
7
8
 
8
9
  export interface SidePanelHeaderProps {
9
10
  centerComponent?: React.ReactNode;
@@ -11,72 +12,99 @@ export interface SidePanelHeaderProps {
11
12
  leadingIconOnPress?: () => void;
12
13
  trailingIconName?: keyof IconsInterface;
13
14
  trailingIconOnPress?: () => void;
15
+ trailingIconName2?: keyof IconsInterface;
16
+ trailingIconOnPress2?: () => void;
14
17
  isChat?: boolean;
18
+ children?: React.ReactNode;
15
19
  }
16
- const SidePanelHeader = (props: SidePanelHeaderProps) => {
17
- const {isChat = false} = props;
18
- return (
19
- <View
20
- style={[
21
- SidePanelStyles.sidePanelHeader,
22
- isChat ? SidePanelStyles.chatPadding : {},
23
- ]}>
24
- {props?.leadingIconName ? (
25
- <View>
26
- <IconButton
27
- hoverEffect={true}
28
- hoverEffectStyle={{
29
- backgroundColor: $config.ICON_BG_COLOR,
30
- borderRadius: 20,
31
- }}
32
- iconProps={{
33
- iconType: 'plain',
34
- iconContainerStyle: {
35
- padding: 5,
36
- },
37
- iconSize: 20,
38
- name: props.leadingIconName,
39
- tintColor: $config.SECONDARY_ACTION_COLOR,
40
- }}
41
- onPress={() => {
42
- props?.leadingIconOnPress && props.leadingIconOnPress();
43
- }}
44
- />
20
+ const SidePanelHeader = React.forwardRef<View, SidePanelHeaderProps>(
21
+ (props: SidePanelHeaderProps, ref) => {
22
+ const {isChat = false, children = <></>} = props;
23
+ return (
24
+ <>
25
+ <View
26
+ style={[
27
+ SidePanelStyles.sidePanelHeader,
28
+ isChat ? SidePanelStyles.chatPadding : {},
29
+ ]}>
30
+ {props?.leadingIconName ? (
31
+ <View>
32
+ <IconButton
33
+ hoverEffect={true}
34
+ hoverEffectStyle={{
35
+ backgroundColor: $config.ICON_BG_COLOR,
36
+ borderRadius: 20,
37
+ }}
38
+ iconProps={{
39
+ iconType: 'plain',
40
+ iconContainerStyle: {
41
+ padding: 5,
42
+ },
43
+ iconSize: 20,
44
+ name: props.leadingIconName,
45
+ tintColor: $config.SECONDARY_ACTION_COLOR,
46
+ }}
47
+ onPress={() => {
48
+ props?.leadingIconOnPress && props.leadingIconOnPress();
49
+ }}
50
+ />
51
+ </View>
52
+ ) : isChat ? (
53
+ <View style={{width: 30, height: 'auto'}}></View>
54
+ ) : null}
55
+ {props?.centerComponent ? props.centerComponent : null}
56
+ <View style={props?.trailingIconName2 && SidePanelStyles.row}>
57
+ {props?.trailingIconName ? (
58
+ <View ref={ref} collapsable={false} style={{flex: 1}}>
59
+ <IconButton
60
+ hoverEffect={true}
61
+ hoverEffectStyle={{
62
+ backgroundColor: $config.ICON_BG_COLOR,
63
+ borderRadius: 20,
64
+ }}
65
+ iconProps={{
66
+ iconType: 'plain',
67
+ iconContainerStyle: {
68
+ padding: 5,
69
+ },
70
+ iconSize: 20,
71
+ name: props?.trailingIconName,
72
+ tintColor: $config.SECONDARY_ACTION_COLOR,
73
+ }}
74
+ onPress={() => {
75
+ props?.trailingIconOnPress && props.trailingIconOnPress();
76
+ }}
77
+ />
78
+ </View>
79
+ ) : null}
80
+ {props?.trailingIconName2 ? (
81
+ <IconButton
82
+ hoverEffect={true}
83
+ hoverEffectStyle={{
84
+ backgroundColor: $config.ICON_BG_COLOR,
85
+ borderRadius: 20,
86
+ }}
87
+ iconProps={{
88
+ iconType: 'plain',
89
+ iconContainerStyle: {
90
+ padding: 5,
91
+ },
92
+ iconSize: 20,
93
+ name: props?.trailingIconName2,
94
+ tintColor: $config.SECONDARY_ACTION_COLOR,
95
+ }}
96
+ onPress={() => {
97
+ props?.trailingIconOnPress2 && props.trailingIconOnPress2();
98
+ }}
99
+ />
100
+ ) : null}
101
+ </View>
45
102
  </View>
46
- ) : isChat ? (
47
- <View style={{width: 30, height: 'auto'}}></View>
48
- ) : (
49
- <></>
50
- )}
51
- {props?.centerComponent ? props.centerComponent : <></>}
52
- <View>
53
- {props?.trailingIconName ? (
54
- <IconButton
55
- hoverEffect={true}
56
- hoverEffectStyle={{
57
- backgroundColor: $config.ICON_BG_COLOR,
58
- borderRadius: 20,
59
- }}
60
- iconProps={{
61
- iconType: 'plain',
62
- iconContainerStyle: {
63
- padding: 5,
64
- },
65
- iconSize: 20,
66
- name: props?.trailingIconName,
67
- tintColor: $config.SECONDARY_ACTION_COLOR,
68
- }}
69
- onPress={() => {
70
- props?.trailingIconOnPress && props.trailingIconOnPress();
71
- }}
72
- />
73
- ) : (
74
- <></>
75
- )}
76
- </View>
77
- </View>
78
- );
79
- };
103
+ {children}
104
+ </>
105
+ );
106
+ },
107
+ );
80
108
 
81
109
  export const SidePanelStyles = StyleSheet.create({
82
110
  sidePanelHeader: {
@@ -108,5 +136,11 @@ export const SidePanelStyles = StyleSheet.create({
108
136
  alignItems: 'center',
109
137
  justifyContent: 'center',
110
138
  },
139
+ row: {
140
+ flexDirection: 'row',
141
+ justifyContent: 'center',
142
+ alignItems: 'center',
143
+ flex: 0.3,
144
+ },
111
145
  });
112
146
  export default SidePanelHeader;