@100mslive/roomkit-react 0.4.3-alpha.3 → 0.4.3-alpha.4

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 (389) hide show
  1. package/dist/index.cjs.css +194 -219
  2. package/dist/index.cjs.css.map +3 -3
  3. package/dist/index.cjs.js +2 -2
  4. package/dist/index.cjs.js.map +2 -2
  5. package/dist/index.css +194 -219
  6. package/dist/index.css.map +3 -3
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +2 -2
  9. package/dist/meta.cjs.json +18 -31
  10. package/dist/meta.esbuild.json +18 -31
  11. package/package.json +8 -9
  12. package/src/Accordion/Accordion.tsx +0 -88
  13. package/src/Accordion/index.ts +0 -8
  14. package/src/AudioLevel/AudioLevel.tsx +0 -84
  15. package/src/AudioLevel/audio-level.png +0 -0
  16. package/src/AudioLevel/index.ts +0 -2
  17. package/src/AudioLevel/useBorderAudioLevel.tsx +0 -34
  18. package/src/Avatar/Avatar.tsx +0 -60
  19. package/src/Avatar/getAvatarBg.ts +0 -50
  20. package/src/Avatar/index.ts +0 -1
  21. package/src/Button/Button.tsx +0 -210
  22. package/src/Button/index.tsx +0 -1
  23. package/src/Checkbox/Checkbox.tsx +0 -35
  24. package/src/Checkbox/index.tsx +0 -1
  25. package/src/Collapsible/Collapsible.tsx +0 -34
  26. package/src/Collapsible/index.tsx +0 -1
  27. package/src/Diagnostics/AudioTest.tsx +0 -188
  28. package/src/Diagnostics/BrowserTest.tsx +0 -141
  29. package/src/Diagnostics/ConnectivityTest.tsx +0 -383
  30. package/src/Diagnostics/DeviceSelector.jsx +0 -71
  31. package/src/Diagnostics/Diagnostics.tsx +0 -190
  32. package/src/Diagnostics/DiagnosticsContext.ts +0 -46
  33. package/src/Diagnostics/VideoTest.tsx +0 -72
  34. package/src/Diagnostics/components.tsx +0 -70
  35. package/src/Diagnostics/index.ts +0 -1
  36. package/src/Divider/Divider.tsx +0 -45
  37. package/src/Divider/index.ts +0 -1
  38. package/src/Dropdown/Dropdown.tsx +0 -145
  39. package/src/Dropdown/index.tsx +0 -1
  40. package/src/Fieldset/Fieldset.tsx +0 -11
  41. package/src/Fieldset/index.tsx +0 -1
  42. package/src/Footer/Footer.tsx +0 -47
  43. package/src/Footer/index.tsx +0 -1
  44. package/src/IconButton/IconButton.tsx +0 -43
  45. package/src/IconButton/index.tsx +0 -1
  46. package/src/Input/Input.tsx +0 -109
  47. package/src/Input/index.tsx +0 -1
  48. package/src/Label/Label.tsx +0 -8
  49. package/src/Label/index.ts +0 -1
  50. package/src/Layout/Box.tsx +0 -3
  51. package/src/Layout/Flex.tsx +0 -76
  52. package/src/Layout/index.tsx +0 -2
  53. package/src/Link/Link.tsx +0 -54
  54. package/src/Link/index.tsx +0 -2
  55. package/src/Loading/Loading.tsx +0 -30
  56. package/src/Loading/index.ts +0 -1
  57. package/src/Modal/Dialog.tsx +0 -57
  58. package/src/Modal/DialogContent.tsx +0 -65
  59. package/src/Modal/index.ts +0 -1
  60. package/src/Pagination/StyledPagination.tsx +0 -70
  61. package/src/Pagination/index.tsx +0 -1
  62. package/src/Popover/index.tsx +0 -34
  63. package/src/Prebuilt/App.tsx +0 -318
  64. package/src/Prebuilt/AppContext.tsx +0 -33
  65. package/src/Prebuilt/AppStateContext.tsx +0 -95
  66. package/src/Prebuilt/IconButton.tsx +0 -26
  67. package/src/Prebuilt/common/PeersSorter.ts +0 -111
  68. package/src/Prebuilt/common/constants.ts +0 -151
  69. package/src/Prebuilt/common/hooks.ts +0 -257
  70. package/src/Prebuilt/common/utils.js +0 -185
  71. package/src/Prebuilt/components/AppData/AppData.tsx +0 -208
  72. package/src/Prebuilt/components/AppData/useChatState.js +0 -18
  73. package/src/Prebuilt/components/AppData/useSheet.ts +0 -33
  74. package/src/Prebuilt/components/AppData/useSidepane.js +0 -99
  75. package/src/Prebuilt/components/AppData/useSidepaneResetOnLayoutUpdate.tsx +0 -22
  76. package/src/Prebuilt/components/AppData/useUISettings.js +0 -212
  77. package/src/Prebuilt/components/AudioVideoToggle.tsx +0 -411
  78. package/src/Prebuilt/components/AuthToken.tsx +0 -148
  79. package/src/Prebuilt/components/CaptionIcon.tsx +0 -27
  80. package/src/Prebuilt/components/Chat/ArrowNavigation.tsx +0 -44
  81. package/src/Prebuilt/components/Chat/Chat.tsx +0 -190
  82. package/src/Prebuilt/components/Chat/ChatActions.tsx +0 -314
  83. package/src/Prebuilt/components/Chat/ChatBody.tsx +0 -493
  84. package/src/Prebuilt/components/Chat/ChatFooter.tsx +0 -316
  85. package/src/Prebuilt/components/Chat/ChatSelector.tsx +0 -228
  86. package/src/Prebuilt/components/Chat/ChatSelectorContainer.tsx +0 -158
  87. package/src/Prebuilt/components/Chat/ChatStates.tsx +0 -73
  88. package/src/Prebuilt/components/Chat/EmptyChat.tsx +0 -58
  89. package/src/Prebuilt/components/Chat/MwebChatOption.tsx +0 -24
  90. package/src/Prebuilt/components/Chat/PinnedMessage.tsx +0 -140
  91. package/src/Prebuilt/components/Chat/StickIndicator.tsx +0 -24
  92. package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +0 -32
  93. package/src/Prebuilt/components/Chat/useUnreadCount.ts +0 -19
  94. package/src/Prebuilt/components/Chat/utils.ts +0 -11
  95. package/src/Prebuilt/components/ChatSettings.tsx +0 -68
  96. package/src/Prebuilt/components/Chip.tsx +0 -40
  97. package/src/Prebuilt/components/ConferenceScreen.tsx +0 -205
  98. package/src/Prebuilt/components/Connection/ConnectionIndicator.tsx +0 -89
  99. package/src/Prebuilt/components/Connection/TileConnection.tsx +0 -93
  100. package/src/Prebuilt/components/Connection/connectionQualityUtils.js +0 -37
  101. package/src/Prebuilt/components/EmojiReaction.jsx +0 -100
  102. package/src/Prebuilt/components/EndCallFeedback/Feedback.tsx +0 -71
  103. package/src/Prebuilt/components/EndCallFeedback/FeedbackForm.tsx +0 -381
  104. package/src/Prebuilt/components/EndCallFeedback/ThankyouView.tsx +0 -64
  105. package/src/Prebuilt/components/ErrorBoundary.jsx +0 -102
  106. package/src/Prebuilt/components/Footer/ChatToggle.tsx +0 -53
  107. package/src/Prebuilt/components/Footer/EmojiCard.jsx +0 -34
  108. package/src/Prebuilt/components/Footer/Footer.tsx +0 -115
  109. package/src/Prebuilt/components/Footer/PaginatedParticipants.tsx +0 -124
  110. package/src/Prebuilt/components/Footer/ParticipantList.tsx +0 -478
  111. package/src/Prebuilt/components/Footer/PollsToggle.tsx +0 -37
  112. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +0 -183
  113. package/src/Prebuilt/components/Footer/RoleOptions.tsx +0 -215
  114. package/src/Prebuilt/components/Footer/WhiteboardToggle.tsx +0 -52
  115. package/src/Prebuilt/components/FullPageProgress.tsx +0 -22
  116. package/src/Prebuilt/components/HMSVideo/Controls.jsx +0 -22
  117. package/src/Prebuilt/components/HMSVideo/FullscreenButton.tsx +0 -13
  118. package/src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.tsx +0 -72
  119. package/src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx +0 -15
  120. package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx +0 -248
  121. package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +0 -75
  122. package/src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx +0 -86
  123. package/src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx +0 -27
  124. package/src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx +0 -158
  125. package/src/Prebuilt/components/HMSVideo/PlayerContext.tsx +0 -15
  126. package/src/Prebuilt/components/HMSVideo/SeekControl.tsx +0 -22
  127. package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +0 -100
  128. package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +0 -52
  129. package/src/Prebuilt/components/HMSVideo/VolumeControl.tsx +0 -70
  130. package/src/Prebuilt/components/HMSVideo/index.ts +0 -24
  131. package/src/Prebuilt/components/HMSVideo/utils.ts +0 -37
  132. package/src/Prebuilt/components/Header/Header.tsx +0 -52
  133. package/src/Prebuilt/components/Header/HeaderComponents.jsx +0 -57
  134. package/src/Prebuilt/components/Header/ParticipantFilter.jsx +0 -89
  135. package/src/Prebuilt/components/Header/RoomDetailsHeader.tsx +0 -51
  136. package/src/Prebuilt/components/Header/StreamActions.tsx +0 -297
  137. package/src/Prebuilt/components/Header/common.jsx +0 -196
  138. package/src/Prebuilt/components/Header/index.tsx +0 -1
  139. package/src/Prebuilt/components/HlsStatsOverlay.jsx +0 -89
  140. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +0 -167
  141. package/src/Prebuilt/components/Input/KeyboardInputManager.js +0 -107
  142. package/src/Prebuilt/components/InsetTile.tsx +0 -136
  143. package/src/Prebuilt/components/LayoutModeSelector.tsx +0 -112
  144. package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +0 -166
  145. package/src/Prebuilt/components/Leave/EndSessionContent.tsx +0 -64
  146. package/src/Prebuilt/components/Leave/LeaveAtoms.tsx +0 -26
  147. package/src/Prebuilt/components/Leave/LeaveCard.tsx +0 -36
  148. package/src/Prebuilt/components/Leave/LeaveRoom.tsx +0 -82
  149. package/src/Prebuilt/components/Leave/LeaveSessionContent.tsx +0 -61
  150. package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +0 -135
  151. package/src/Prebuilt/components/LeaveScreen.tsx +0 -71
  152. package/src/Prebuilt/components/MoreSettings/ActionTile.jsx +0 -60
  153. package/src/Prebuilt/components/MoreSettings/BulkRoleChangeModal.jsx +0 -139
  154. package/src/Prebuilt/components/MoreSettings/CaptionContent.tsx +0 -143
  155. package/src/Prebuilt/components/MoreSettings/CaptionModal.tsx +0 -37
  156. package/src/Prebuilt/components/MoreSettings/ChangeNameContent.tsx +0 -123
  157. package/src/Prebuilt/components/MoreSettings/ChangeNameModal.tsx +0 -78
  158. package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +0 -81
  159. package/src/Prebuilt/components/MoreSettings/FullScreenItem.tsx +0 -26
  160. package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +0 -29
  161. package/src/Prebuilt/components/MoreSettings/MuteAllContent.tsx +0 -81
  162. package/src/Prebuilt/components/MoreSettings/MuteAllModal.tsx +0 -72
  163. package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +0 -282
  164. package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +0 -387
  165. package/src/Prebuilt/components/MoreSettings/constants.ts +0 -14
  166. package/src/Prebuilt/components/MwebLandscapePrompt.tsx +0 -81
  167. package/src/Prebuilt/components/Notifications/AutoplayBlockedModal.tsx +0 -39
  168. package/src/Prebuilt/components/Notifications/ChatNotifications.tsx +0 -34
  169. package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +0 -18
  170. package/src/Prebuilt/components/Notifications/DeviceInUseError.tsx +0 -86
  171. package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +0 -56
  172. package/src/Prebuilt/components/Notifications/HLSFailureModal.tsx +0 -71
  173. package/src/Prebuilt/components/Notifications/HandRaisedNotifications.tsx +0 -78
  174. package/src/Prebuilt/components/Notifications/InitErrorModal.tsx +0 -42
  175. package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +0 -24
  176. package/src/Prebuilt/components/Notifications/Notifications.tsx +0 -65
  177. package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +0 -52
  178. package/src/Prebuilt/components/Notifications/PermissionErrorModal.tsx +0 -144
  179. package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +0 -71
  180. package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +0 -33
  181. package/src/Prebuilt/components/Notifications/RoleChangeNotification.tsx +0 -24
  182. package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +0 -61
  183. package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +0 -41
  184. package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +0 -63
  185. package/src/Prebuilt/components/Notifications/TranscriptionNotifications.tsx +0 -58
  186. package/src/Prebuilt/components/Notifications/index.tsx +0 -1
  187. package/src/Prebuilt/components/PIP/PIPChat.tsx +0 -292
  188. package/src/Prebuilt/components/PIP/PIPChatOption.tsx +0 -18
  189. package/src/Prebuilt/components/PIP/PIPComponent.tsx +0 -90
  190. package/src/Prebuilt/components/PIP/PIPManager.ts +0 -335
  191. package/src/Prebuilt/components/PIP/PIPProvider.tsx +0 -56
  192. package/src/Prebuilt/components/PIP/PIPWindow.tsx +0 -13
  193. package/src/Prebuilt/components/PIP/SetupMediaSession.js +0 -60
  194. package/src/Prebuilt/components/PIP/context.ts +0 -10
  195. package/src/Prebuilt/components/PIP/index.jsx +0 -6
  196. package/src/Prebuilt/components/PIP/pip.test.js +0 -72
  197. package/src/Prebuilt/components/PIP/pipUtils.js +0 -183
  198. package/src/Prebuilt/components/PIP/usePIPChat.tsx +0 -105
  199. package/src/Prebuilt/components/PIP/usePIPWindow.tsx +0 -12
  200. package/src/Prebuilt/components/Pagination.tsx +0 -60
  201. package/src/Prebuilt/components/Polls/CreatePollQuiz/PollsQuizMenu.tsx +0 -248
  202. package/src/Prebuilt/components/Polls/CreateQuestions/CreateQuestions.jsx +0 -142
  203. package/src/Prebuilt/components/Polls/CreateQuestions/DeleteQuestionModal.tsx +0 -74
  204. package/src/Prebuilt/components/Polls/CreateQuestions/QuestionForm.tsx +0 -324
  205. package/src/Prebuilt/components/Polls/CreateQuestions/SavedQuestion.tsx +0 -64
  206. package/src/Prebuilt/components/Polls/Polls.tsx +0 -31
  207. package/src/Prebuilt/components/Polls/Voting/LeaderboardEntry.tsx +0 -76
  208. package/src/Prebuilt/components/Polls/Voting/LeaderboardSummary.tsx +0 -116
  209. package/src/Prebuilt/components/Polls/Voting/PeerParticipationSummary.tsx +0 -60
  210. package/src/Prebuilt/components/Polls/Voting/QuestionCard.jsx +0 -221
  211. package/src/Prebuilt/components/Polls/Voting/StandardVoting.tsx +0 -47
  212. package/src/Prebuilt/components/Polls/Voting/StatisticBox.tsx +0 -20
  213. package/src/Prebuilt/components/Polls/Voting/TimedVoting.tsx +0 -55
  214. package/src/Prebuilt/components/Polls/Voting/Voting.tsx +0 -143
  215. package/src/Prebuilt/components/Polls/Voting/useQuizSummary.tsx +0 -50
  216. package/src/Prebuilt/components/Polls/common/Line.tsx +0 -4
  217. package/src/Prebuilt/components/Polls/common/MultipleChoiceOptions.jsx +0 -115
  218. package/src/Prebuilt/components/Polls/common/OptionInputWithDelete.tsx +0 -38
  219. package/src/Prebuilt/components/Polls/common/SingleChoiceOptions.jsx +0 -140
  220. package/src/Prebuilt/components/Polls/common/StatusIndicator.tsx +0 -35
  221. package/src/Prebuilt/components/Polls/common/VoteCount.tsx +0 -15
  222. package/src/Prebuilt/components/Polls/common/VoteProgress.tsx +0 -18
  223. package/src/Prebuilt/components/Polls/common/constants.ts +0 -5
  224. package/src/Prebuilt/components/Polls/common/utils.ts +0 -22
  225. package/src/Prebuilt/components/Preview/PreviewForm.tsx +0 -94
  226. package/src/Prebuilt/components/Preview/PreviewJoin.tsx +0 -292
  227. package/src/Prebuilt/components/Preview/PreviewScreen.tsx +0 -38
  228. package/src/Prebuilt/components/PreviousRoleInMetadata.tsx +0 -20
  229. package/src/Prebuilt/components/RaiseHand.tsx +0 -30
  230. package/src/Prebuilt/components/RemoveParticipant.tsx +0 -35
  231. package/src/Prebuilt/components/RoleChangeModal.tsx +0 -188
  232. package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +0 -75
  233. package/src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx +0 -94
  234. package/src/Prebuilt/components/RoomDetails/Duration.tsx +0 -26
  235. package/src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx +0 -63
  236. package/src/Prebuilt/components/RoomDetails/RoomDetailsRow.tsx +0 -23
  237. package/src/Prebuilt/components/RoomDetails/RoomDetailsSheet.tsx +0 -45
  238. package/src/Prebuilt/components/ScreenShareToggle.jsx +0 -58
  239. package/src/Prebuilt/components/ScreenshareDisplay.tsx +0 -39
  240. package/src/Prebuilt/components/ScreenshareTile.tsx +0 -134
  241. package/src/Prebuilt/components/SecondaryTiles.tsx +0 -81
  242. package/src/Prebuilt/components/Settings/DeviceSettings.jsx +0 -208
  243. package/src/Prebuilt/components/Settings/LayoutSettings.tsx +0 -74
  244. package/src/Prebuilt/components/Settings/NotificationSettings.tsx +0 -66
  245. package/src/Prebuilt/components/Settings/SettingsModal.jsx +0 -301
  246. package/src/Prebuilt/components/Settings/StartRecording.jsx +0 -101
  247. package/src/Prebuilt/components/Settings/SwitchWithLabel.tsx +0 -53
  248. package/src/Prebuilt/components/Settings/common.ts +0 -16
  249. package/src/Prebuilt/components/ShareMenuIcon.jsx +0 -27
  250. package/src/Prebuilt/components/SidePaneTabs.tsx +0 -214
  251. package/src/Prebuilt/components/StatsForNerds.jsx +0 -373
  252. package/src/Prebuilt/components/Streaming/Common.jsx +0 -143
  253. package/src/Prebuilt/components/Streaming/ResolutionInput.jsx +0 -88
  254. package/src/Prebuilt/components/TileMenu/TileMenu.tsx +0 -148
  255. package/src/Prebuilt/components/TileMenu/TileMenuContent.tsx +0 -393
  256. package/src/Prebuilt/components/TileMenu/utils.ts +0 -7
  257. package/src/Prebuilt/components/Toast/Toast.jsx +0 -17
  258. package/src/Prebuilt/components/Toast/ToastBatcher.js +0 -64
  259. package/src/Prebuilt/components/Toast/ToastConfig.jsx +0 -177
  260. package/src/Prebuilt/components/Toast/ToastContainer.jsx +0 -30
  261. package/src/Prebuilt/components/Toast/ToastManager.js +0 -44
  262. package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +0 -62
  263. package/src/Prebuilt/components/VideoLayouts/Grid.tsx +0 -43
  264. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +0 -155
  265. package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +0 -91
  266. package/src/Prebuilt/components/VideoLayouts/RoleProminence.tsx +0 -66
  267. package/src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx +0 -74
  268. package/src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx +0 -93
  269. package/src/Prebuilt/components/VideoLayouts/interface.ts +0 -11
  270. package/src/Prebuilt/components/VideoTile.tsx +0 -203
  271. package/src/Prebuilt/components/VirtualBackground/VBCollection.tsx +0 -52
  272. package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +0 -130
  273. package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +0 -57
  274. package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +0 -252
  275. package/src/Prebuilt/components/VirtualBackground/VBToggle.tsx +0 -50
  276. package/src/Prebuilt/components/hooks/useAudioOutputTest.tsx +0 -20
  277. package/src/Prebuilt/components/hooks/useAutoStartStreaming.tsx +0 -70
  278. package/src/Prebuilt/components/hooks/useChatBlacklist.ts +0 -29
  279. package/src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx +0 -17
  280. package/src/Prebuilt/components/hooks/useDropdownList.ts +0 -24
  281. package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +0 -3
  282. package/src/Prebuilt/components/hooks/useFullscreen.ts +0 -46
  283. package/src/Prebuilt/components/hooks/useGroupOnStageActions.tsx +0 -54
  284. package/src/Prebuilt/components/hooks/useMetadata.tsx +0 -56
  285. package/src/Prebuilt/components/hooks/usePeerOnStageActions.tsx +0 -49
  286. package/src/Prebuilt/components/hooks/usePinnedBy.tsx +0 -22
  287. package/src/Prebuilt/components/hooks/usePinnedMessages.ts +0 -78
  288. package/src/Prebuilt/components/hooks/usePlaylist.js +0 -25
  289. package/src/Prebuilt/components/hooks/usePlaylistMusic.js +0 -35
  290. package/src/Prebuilt/components/hooks/useRedirectToLeave.tsx +0 -23
  291. package/src/Prebuilt/components/hooks/useRoleProminencePeers.tsx +0 -39
  292. package/src/Prebuilt/components/hooks/useScreenshareAudio.js +0 -28
  293. package/src/Prebuilt/components/hooks/useTileLayout.tsx +0 -128
  294. package/src/Prebuilt/components/hooks/useUnreadPollQuizPresent.tsx +0 -17
  295. package/src/Prebuilt/components/hooks/useUserPreferences.jsx +0 -26
  296. package/src/Prebuilt/components/hooks/useVideoTileLayout.ts +0 -26
  297. package/src/Prebuilt/components/init/Init.jsx +0 -31
  298. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +0 -42
  299. package/src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx +0 -31
  300. package/src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx +0 -32
  301. package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +0 -211
  302. package/src/Prebuilt/components/pdfAnnotator/submitPdf.jsx +0 -48
  303. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +0 -71
  304. package/src/Prebuilt/components/peerTileUtils.tsx +0 -42
  305. package/src/Prebuilt/images/android-perm-1.png +0 -0
  306. package/src/Prebuilt/images/empty-chat.svg +0 -12
  307. package/src/Prebuilt/images/ios-perm-0.png +0 -0
  308. package/src/Prebuilt/images/pdf-share.png +0 -0
  309. package/src/Prebuilt/images/rtmp.png +0 -0
  310. package/src/Prebuilt/images/screen-share.png +0 -0
  311. package/src/Prebuilt/images/transaction_error.svg +0 -12
  312. package/src/Prebuilt/index.ts +0 -1
  313. package/src/Prebuilt/layouts/EmbedView.jsx +0 -94
  314. package/src/Prebuilt/layouts/HLSView.jsx +0 -747
  315. package/src/Prebuilt/layouts/PDFView.jsx +0 -67
  316. package/src/Prebuilt/layouts/Sheet.tsx +0 -14
  317. package/src/Prebuilt/layouts/SidePane.tsx +0 -241
  318. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +0 -164
  319. package/src/Prebuilt/layouts/WaitingView.tsx +0 -52
  320. package/src/Prebuilt/plugins/CaptionsViewer.tsx +0 -261
  321. package/src/Prebuilt/plugins/FlyingEmoji.jsx +0 -154
  322. package/src/Prebuilt/plugins/RemoteStopScreenshare.jsx +0 -18
  323. package/src/Prebuilt/plugins/transcription/Transcriber.js +0 -216
  324. package/src/Prebuilt/plugins/transcription/TranscriptionButton.jsx +0 -138
  325. package/src/Prebuilt/plugins/transcription/index.jsx +0 -1
  326. package/src/Prebuilt/primitives/DialogContent.jsx +0 -285
  327. package/src/Prebuilt/primitives/DropdownTrigger.jsx +0 -46
  328. package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +0 -60
  329. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +0 -88
  330. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.ts +0 -10
  331. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.ts +0 -112
  332. package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +0 -53
  333. package/src/Prebuilt/services/FeatureFlags.jsx +0 -46
  334. package/src/Progress/index.tsx +0 -17
  335. package/src/QRCode/QRCode.tsx +0 -6
  336. package/src/QRCode/index.tsx +0 -1
  337. package/src/RadioGroup/RadioGroup.tsx +0 -33
  338. package/src/RadioGroup/index.tsx +0 -1
  339. package/src/ReactSelect/ReactSelect.tsx +0 -97
  340. package/src/ReactSelect/index.ts +0 -1
  341. package/src/Select/Select.tsx +0 -63
  342. package/src/Select/index.ts +0 -1
  343. package/src/Sheet/Sheet.tsx +0 -122
  344. package/src/Sheet/index.ts +0 -1
  345. package/src/Slider/Slider.tsx +0 -70
  346. package/src/Slider/index.ts +0 -1
  347. package/src/Stats/Stats.tsx +0 -243
  348. package/src/Stats/StyledStats.tsx +0 -57
  349. package/src/Stats/formatBytes.ts +0 -19
  350. package/src/Stats/index.tsx +0 -2
  351. package/src/Stats/useQoE.ts +0 -79
  352. package/src/Switch/Switch.tsx +0 -52
  353. package/src/Switch/index.ts +0 -1
  354. package/src/Tabs/Tabs.tsx +0 -41
  355. package/src/Tabs/index.tsx +0 -1
  356. package/src/Text/Text.tsx +0 -149
  357. package/src/Text/index.tsx +0 -1
  358. package/src/TextArea/TextArea.tsx +0 -30
  359. package/src/TextArea/index.tsx +0 -1
  360. package/src/Theme/ThemeProvider.tsx +0 -98
  361. package/src/Theme/base.config.ts +0 -236
  362. package/src/Theme/index.tsx +0 -2
  363. package/src/Theme/stitches.config.ts +0 -88
  364. package/src/Theme/useSSR.tsx +0 -24
  365. package/src/TileMenu/StyledMenuTile.tsx +0 -105
  366. package/src/TileMenu/TileMenu.tsx +0 -98
  367. package/src/TileMenu/index.tsx +0 -1
  368. package/src/Toast/Toast.tsx +0 -170
  369. package/src/Toast/index.tsx +0 -1
  370. package/src/Tooltip/Tooltip.tsx +0 -79
  371. package/src/Tooltip/index.ts +0 -1
  372. package/src/Video/Video.tsx +0 -61
  373. package/src/Video/index.tsx +0 -1
  374. package/src/VideoList/StyledVideoList.tsx +0 -39
  375. package/src/VideoList/index.tsx +0 -2
  376. package/src/VideoList/videoListUtils.tsx +0 -20
  377. package/src/VideoTile/StyledVideoTile.tsx +0 -146
  378. package/src/VideoTile/index.tsx +0 -1
  379. package/src/context/DialogContext.tsx +0 -13
  380. package/src/fixtures/chats.ts +0 -25
  381. package/src/fixtures/peers.ts +0 -27
  382. package/src/fixtures/tracks.ts +0 -11
  383. package/src/hooks/useDialogContainerSelector.tsx +0 -7
  384. package/src/index.ts +0 -41
  385. package/src/store/SetupFakeStore.ts +0 -33
  386. package/src/store/StorybookSDK.ts +0 -231
  387. package/src/utils/animations.ts +0 -114
  388. package/src/utils/index.ts +0 -2
  389. package/src/utils/styles.ts +0 -22
@@ -1,95 +0,0 @@
1
- import React, { useContext, useEffect } from 'react';
2
- import { usePreviousDistinct } from 'react-use';
3
- import { HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background';
4
- import { match, P } from 'ts-pattern';
5
- import { HMSRoomState, selectRoomState, useHMSActions, useHMSStore } from '@100mslive/react-sdk';
6
- import { VBHandler } from './components/VirtualBackground/VBHandler';
7
- import { useRoomLayout, useSetOriginalLayout } from './provider/roomLayoutProvider';
8
- import { useRedirectToLeave } from './components/hooks/useRedirectToLeave';
9
- import {
10
- useRoomLayoutLeaveScreen,
11
- useRoomLayoutPreviewScreen,
12
- } from './provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
13
- import { APP_DATA } from './common/constants';
14
-
15
- export enum PrebuiltStates {
16
- MEETING = 'meeting',
17
- PREVIEW = 'preview',
18
- LEAVE = 'leave',
19
- }
20
-
21
- type AppStateContextType = {
22
- rejoin: () => void;
23
- };
24
-
25
- export const AppStateContext = React.createContext<AppStateContextType>({
26
- rejoin: () => {
27
- console.log('Rejoin');
28
- },
29
- });
30
-
31
- AppStateContext.displayName = 'AppStateContext';
32
-
33
- export const useHMSAppStateContext = () => {
34
- const context = useContext(AppStateContext);
35
- if (!context) {
36
- throw Error('Make sure AppStateContext.Provider is present at the top level of your application');
37
- }
38
- return context;
39
- };
40
-
41
- export const useAppStateManager = () => {
42
- const roomLayout = useRoomLayout();
43
- const setOriginalLayout = useSetOriginalLayout();
44
- const [activeState, setActiveState] = React.useState<PrebuiltStates | undefined>();
45
- const roomState = useHMSStore(selectRoomState);
46
- const prevRoomState = usePreviousDistinct(roomState);
47
- const hmsActions = useHMSActions();
48
- const { isLeaveScreenEnabled } = useRoomLayoutLeaveScreen();
49
- const { isPreviewScreenEnabled } = useRoomLayoutPreviewScreen();
50
- const { redirectToLeave } = useRedirectToLeave();
51
-
52
- const rejoin = () => {
53
- setOriginalLayout?.();
54
- hmsActions.setAppData(APP_DATA.authToken, '');
55
- setActiveState(isPreviewScreenEnabled ? PrebuiltStates.PREVIEW : PrebuiltStates.MEETING);
56
- };
57
-
58
- useEffect(() => {
59
- if (!roomLayout) {
60
- return;
61
- }
62
- match([roomState, prevRoomState])
63
- .with([HMSRoomState.Connected, P.any], () => setActiveState(PrebuiltStates.MEETING))
64
- .with(
65
- [HMSRoomState.Disconnecting, HMSRoomState.Connected],
66
- [HMSRoomState.Disconnecting, HMSRoomState.Connecting],
67
- [HMSRoomState.Disconnecting, HMSRoomState.Reconnecting],
68
- [HMSRoomState.Disconnected, HMSRoomState.Connected],
69
- [HMSRoomState.Disconnected, HMSRoomState.Connecting],
70
- [HMSRoomState.Disconnected, HMSRoomState.Reconnecting],
71
- [HMSRoomState.Disconnected, HMSRoomState.Preview],
72
- () => {
73
- setActiveState(prevState => {
74
- return match({ isLeaveScreenEnabled, isPreviewScreenEnabled, prevState })
75
- .when(
76
- ({ isLeaveScreenEnabled, prevState }) => isLeaveScreenEnabled && prevState !== PrebuiltStates.LEAVE,
77
- () => PrebuiltStates.LEAVE,
78
- )
79
- .with({ isPreviewScreenEnabled: true }, () => PrebuiltStates.PREVIEW)
80
- .otherwise(() => PrebuiltStates.MEETING);
81
- });
82
- VBHandler.reset();
83
- hmsActions.setAppData(APP_DATA.background, HMSVirtualBackgroundTypes.NONE);
84
- redirectToLeave(1000); // to clear toasts after 1 second
85
- },
86
- )
87
- .with([HMSRoomState.Disconnected, P.nullish], () => {
88
- setActiveState(isPreviewScreenEnabled ? PrebuiltStates.PREVIEW : PrebuiltStates.MEETING);
89
- })
90
- .otherwise(() => {
91
- // do nothing
92
- });
93
- }, [roomLayout, roomState, isLeaveScreenEnabled, isPreviewScreenEnabled, prevRoomState, redirectToLeave, hmsActions]);
94
- return { activeState, rejoin };
95
- };
@@ -1,26 +0,0 @@
1
- import { IconButton as BaseIconButton } from '../IconButton';
2
- import { styled } from '../Theme';
3
-
4
- const IconButton = styled(BaseIconButton, {
5
- width: '$14',
6
- height: '$14',
7
- border: '1px solid $border_bright',
8
- bg: '$background_dim',
9
- r: '$1',
10
- '&[disabled]': {
11
- opacity: 0.5,
12
- cursor: 'not-allowed',
13
- backgroundColor: '$secondary_dim',
14
- color: '$on_primary_high',
15
- },
16
- variants: {
17
- active: {
18
- true: {
19
- color: '$on_surface_high',
20
- backgroundColor: 'transparent',
21
- },
22
- },
23
- },
24
- });
25
-
26
- export default IconButton;
@@ -1,111 +0,0 @@
1
- import { HMSPeer, HMSPeerID, IStoreReadOnly, selectDominantSpeaker } from '@100mslive/react-sdk';
2
-
3
- class PeersSorter {
4
- storeUnsubscribe: undefined | (() => void) = undefined;
5
- store: IStoreReadOnly<any>;
6
- peers: Map<string, HMSPeer>;
7
- lruPeers: Set<HMSPeerID>;
8
- tilesPerPage!: number;
9
- speaker?: HMSPeer;
10
- listeners: Set<(peers: HMSPeer[]) => void>;
11
-
12
- constructor(store: IStoreReadOnly<any>) {
13
- this.store = store;
14
- this.peers = new Map();
15
- this.lruPeers = new Set();
16
- this.speaker = undefined;
17
- this.listeners = new Set();
18
- }
19
-
20
- setPeersAndTilesPerPage = ({ peers, tilesPerPage }: { peers: HMSPeer[]; tilesPerPage: number }) => {
21
- this.speaker = undefined;
22
- this.tilesPerPage = tilesPerPage;
23
- const peerIds = new Set(peers.map(peer => peer.id));
24
- // remove existing peers which are no longer provided
25
- this.peers.forEach((_, key) => {
26
- if (!peerIds.has(key)) {
27
- this.peers.delete(key);
28
- }
29
- });
30
- this.lruPeers = new Set([...this.lruPeers].filter(peerId => peerIds.has(peerId)));
31
- peers.forEach(peer => {
32
- this.peers.set(peer.id, peer);
33
- if (this.lruPeers.size < tilesPerPage) {
34
- this.lruPeers.add(peer.id);
35
- }
36
- });
37
- if (!this.storeUnsubscribe) {
38
- this.storeUnsubscribe = this.store.subscribe(this.onDominantSpeakerChange, selectDominantSpeaker);
39
- }
40
- this.moveSpeakerToFront(this.speaker);
41
- };
42
-
43
- onUpdate = (cb: (peers: HMSPeer[]) => void) => {
44
- this.listeners.add(cb);
45
- };
46
-
47
- stop = () => {
48
- this.updateListeners();
49
- this.listeners.clear();
50
- this.storeUnsubscribe?.();
51
- this.storeUnsubscribe = undefined;
52
- this.speaker = undefined;
53
- };
54
-
55
- moveSpeakerToFront = (speaker?: HMSPeer) => {
56
- if (!speaker) {
57
- this.maintainLruSize(this.tilesPerPage);
58
- this.updateListeners();
59
- return;
60
- }
61
- if (this.lruPeers.has(speaker.id) && this.lruPeers.size <= this.tilesPerPage) {
62
- this.updateListeners();
63
- return;
64
- }
65
- // delete to insert at beginning
66
- this.lruPeers.delete(speaker.id);
67
- // - 1 as we are going to insert the new speaker
68
- this.maintainLruSize(this.tilesPerPage - 1);
69
- this.lruPeers = new Set([speaker.id, ...this.lruPeers]);
70
- this.updateListeners();
71
- };
72
-
73
- onDominantSpeakerChange = (speaker: HMSPeer | null) => {
74
- // no speaker or is current speaker do nothing
75
- if (!speaker || speaker.id === this.speaker?.id) {
76
- return;
77
- }
78
- // if the active speaker is not from the peers passed ignore
79
- if (!this.peers.has(speaker.id)) {
80
- return;
81
- }
82
- this.speaker = speaker;
83
- this.moveSpeakerToFront(speaker);
84
- };
85
-
86
- updateListeners = () => {
87
- const orderedPeers: HMSPeer[] = [];
88
- this.lruPeers.forEach(key => {
89
- const peer = this.peers.get(key);
90
- if (peer) {
91
- orderedPeers.push(peer);
92
- }
93
- });
94
- this.peers.forEach(peer => {
95
- if (!this.lruPeers.has(peer.id) && peer) {
96
- orderedPeers.push(peer);
97
- }
98
- });
99
- this.listeners.forEach(listener => listener?.(orderedPeers));
100
- };
101
-
102
- private maintainLruSize = (size: number) => {
103
- const lruPeerArray = Array.from(this.lruPeers);
104
- while (lruPeerArray.length > size && lruPeerArray.length) {
105
- lruPeerArray.pop();
106
- }
107
- this.lruPeers = new Set(lruPeerArray);
108
- };
109
- }
110
-
111
- export default PeersSorter;
@@ -1,151 +0,0 @@
1
- import { parsedUserAgent } from '@100mslive/react-sdk';
2
-
3
- export const QUERY_PARAM_SKIP_PREVIEW = 'skip_preview';
4
- export const QUERY_PARAM_SKIP_PREVIEW_HEADFUL = 'skip_preview_headful';
5
- export const QUERY_PARAM_NAME = 'name';
6
- export const QUERY_PARAM_VIEW_MODE = 'ui_mode';
7
- export const QUERY_PARAM_PREVIEW_AS_ROLE = 'preview_as_role';
8
- export const UI_MODE_GRID = 'grid';
9
- export const MAX_TOASTS = 5;
10
- export const RTMP_RECORD_RESOLUTION_MIN = 480;
11
- export const RTMP_RECORD_RESOLUTION_MAX = 1280;
12
- export const RTMP_RECORD_DEFAULT_RESOLUTION = {
13
- width: 1280,
14
- height: 720,
15
- };
16
- export const EMOJI_REACTION_TYPE = 'EMOJI_REACTION';
17
-
18
- export const CHAT_SELECTOR = {
19
- PEER: 'peer',
20
- ROLE: 'role',
21
- EVERYONE: 'Everyone',
22
- };
23
-
24
- export const APP_DATA = {
25
- uiSettings: 'uiSettings',
26
- chatOpen: 'chatOpen',
27
- chatSelector: 'chatSelector',
28
- chatDraft: 'chatDraft',
29
- appConfig: 'appConfig',
30
- sidePane: 'sidePane',
31
- hlsStats: 'hlsStats',
32
- subscribedNotifications: 'subscribedNotifications',
33
- logo: 'logo',
34
- hlsStarted: 'hlsStarted',
35
- rtmpStarted: 'rtmpStarted',
36
- recordingStarted: 'recordingStarted',
37
- embedConfig: 'embedConfig',
38
- pinnedTrackId: 'pinnedTrackId',
39
- dropdownList: 'dropdownList',
40
- authToken: 'authToken',
41
- pdfConfig: 'pdfConfig',
42
- minimiseInset: 'minimiseInset',
43
- activeScreensharePeerId: 'activeScreensharePeerId',
44
- disableNotifications: 'disableNotifications',
45
- pollState: 'pollState',
46
- background: 'background',
47
- sheet: 'sheet',
48
- caption: 'caption',
49
- loadingEffects: 'loadingEffects',
50
- noiseCancellation: 'noiseCancellation',
51
- };
52
-
53
- export const UI_SETTINGS = {
54
- isAudioOnly: 'isAudioOnly',
55
- maxTileCount: 'maxTileCount',
56
- uiViewMode: 'uiViewMode',
57
- layoutMode: 'layoutMode',
58
- showStatsOnTiles: 'showStatsOnTiles',
59
- enableAmbientMusic: 'enableAmbientMusic',
60
- mirrorLocalVideo: 'mirrorLocalVideo',
61
- };
62
-
63
- export const SIDE_PANE_OPTIONS = {
64
- PARTICIPANTS: 'Participants',
65
- CHAT: 'Chat',
66
- STREAMING: 'STREAMING',
67
- POLLS: 'POLLS',
68
- VB: 'VB',
69
- ROOM_DETAILS: 'ROOM_DETAILS',
70
- };
71
-
72
- export type SidePaneOption = (typeof SIDE_PANE_OPTIONS)[keyof typeof SIDE_PANE_OPTIONS];
73
-
74
- export const SHEET_OPTIONS = {
75
- ROOM_DETAILS: 'ROOM_DETAILS',
76
- };
77
-
78
- export const POLL_STATE = {
79
- pollInView: 'pollInView',
80
- view: 'view',
81
- };
82
-
83
- export const POLL_VIEWS = {
84
- CREATE_POLL_QUIZ: 'CREATE_POLL_QUIZ',
85
- CREATE_QUESTIONS: 'CREATE_QUESTIONS',
86
- VOTE: 'VOTE',
87
- RESULTS: 'RESULTS',
88
- };
89
-
90
- export const CAPTION_TOAST = {
91
- captionToast: 'captionToast',
92
- };
93
- export const SUBSCRIBED_NOTIFICATIONS = {
94
- PEER_JOINED: 'PEER_JOINED',
95
- PEER_LEFT: 'PEER_LEFT',
96
- METADATA_UPDATED: 'METADATA_UPDATED',
97
- NEW_MESSAGE: 'NEW_MESSAGE',
98
- ERROR: 'ERROR',
99
- };
100
-
101
- export const CREATE_ROOM_DOC_URL = 'https://github.com/100mslive/100ms-web/wiki/Creating-and-joining-a-room';
102
- export const HLS_TIMED_METADATA_DOC_URL =
103
- 'https://www.100ms.live/docs/javascript/v2/how--to-guides/record-and-live-stream/hls/hls-timed-metadata';
104
-
105
- export const REMOTE_STOP_SCREENSHARE_TYPE = 'REMOTE_STOP_SCREENSHARE';
106
-
107
- export const isChrome = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'chrome';
108
- export const isFirefox = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'firefox';
109
- export const isSafari = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'safari';
110
- export const isIOS = parsedUserAgent.getOS()?.name?.toLowerCase() === 'ios';
111
- export const isMacOS = parsedUserAgent.getOS()?.name?.toLowerCase() === 'macos';
112
- export const isAndroid = parsedUserAgent.getOS()?.name?.toLowerCase() === 'android';
113
- export const isIPadOS = false;
114
- // typeof navigator !== "undefined" &&
115
- // navigator?.maxTouchPoints &&
116
- // navigator?.maxTouchPoints > 2 &&
117
- // navigator?.userAgent?.match(/Mac/);
118
-
119
- export enum SESSION_STORE_KEY {
120
- TRANSCRIPTION_STATE = 'transcriptionState',
121
- PINNED_MESSAGES = 'pinnedMessages',
122
- SPOTLIGHT = 'spotlight',
123
- CHAT_PEER_BLACKLIST = 'chatPeerBlacklist',
124
- CHAT_MESSAGE_BLACKLIST = 'chatMessageBlacklist',
125
- CHAT_STATE = 'chatState',
126
- }
127
-
128
- export enum INTERACTION_TYPE {
129
- POLL = 'Poll',
130
- QUIZ = 'Quiz',
131
- }
132
-
133
- export enum QUESTION_TYPE_TITLE {
134
- 'single-choice' = 'Single Choice',
135
- 'multiple-choice' = 'Multiple Choice',
136
- // 'short-answer' = 'Short Answer',
137
- // 'long-answer' = 'Long Answer',
138
- }
139
-
140
- export enum QUESTION_TYPE {
141
- SINGLE_CHOICE = 'single-choice',
142
- MULTIPLE_CHOICE = 'multiple-choice',
143
- // SHORT_ANSWER = 'short-answer',
144
- // LONG_ANSWER = 'long-answer',
145
- }
146
-
147
- export const ROLE_CHANGE_DECLINED = 'role_change_declined';
148
-
149
- export const DEFAULT_PORTAL_CONTAINER = '.prebuilt-container';
150
-
151
- export const TEST_AUDIO_URL = 'https://100ms.live/test-audio.wav';
@@ -1,257 +0,0 @@
1
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
- import { useMedia } from 'react-use';
3
- import { HMSHLSPlayer } from '@100mslive/hls-player';
4
- import { JoinForm_JoinBtnType } from '@100mslive/types-prebuilt/elements/join_form';
5
- import {
6
- HMSPeer,
7
- HMSRecording,
8
- parsedUserAgent,
9
- selectAvailableRoleNames,
10
- selectIsAllowedToPublish,
11
- selectIsConnectedToRoom,
12
- selectLocalPeerRole,
13
- selectPeerCount,
14
- selectPeerMetadata,
15
- selectPeers,
16
- selectPeersByRoles,
17
- selectRecordingState,
18
- selectRemotePeers,
19
- selectRolesMap,
20
- useHMSActions,
21
- useHMSStore,
22
- useHMSVanillaStore,
23
- } from '@100mslive/react-sdk';
24
- // @ts-ignore: No implicit any
25
- import { ToastManager } from '../components/Toast/ToastManager';
26
- import { config } from '../../Theme';
27
- import { useRoomLayout } from '../provider/roomLayoutProvider';
28
- // @ts-ignore
29
- import { useSetAppDataByKey } from '../components/AppData/useUISettings';
30
- import { useRoomLayoutConferencingScreen } from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
31
- // @ts-ignore: No implicit any
32
- import { isScreenshareSupported } from '../common/utils';
33
- import { APP_DATA, CHAT_SELECTOR, RTMP_RECORD_DEFAULT_RESOLUTION } from './constants';
34
- /**
35
- * Hook to execute a callback when alone in room(after a certain 5d of time)
36
- * @param {number} thresholdMs The threshold(in ms) after which the callback is executed,
37
- * starting from the instant when alone in room.
38
- * note: the cb is not called when another peer joins during this period.
39
- */
40
- export const useWhenAloneInRoom = (thresholdMs = 5 * 60 * 1000) => {
41
- const isConnected = useHMSStore(selectIsConnectedToRoom);
42
- const peerCount = useHMSStore(selectPeerCount);
43
- const [aloneForLong, setAloneForLong] = useState(false);
44
- const cbTimeout = useRef(null);
45
- const alone = isConnected && peerCount === 1;
46
-
47
- useEffect(() => {
48
- if (alone && !cbTimeout.current) {
49
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
50
- // @ts-ignore
51
- cbTimeout.current = setTimeout(() => {
52
- setAloneForLong(true);
53
- }, thresholdMs);
54
- } else if (!alone) {
55
- cbTimeout.current && clearTimeout(cbTimeout.current);
56
- cbTimeout.current = null;
57
- setAloneForLong(false);
58
- }
59
- }, [alone, thresholdMs]);
60
-
61
- useEffect(() => {
62
- return () => {
63
- if (cbTimeout.current) {
64
- clearTimeout(cbTimeout.current);
65
- }
66
- };
67
- }, []);
68
-
69
- return { alone, aloneForLong };
70
- };
71
-
72
- export const useFilteredRoles = () => {
73
- const { elements } = useRoomLayoutConferencingScreen();
74
- return elements?.chat?.roles_whitelist || [];
75
- };
76
-
77
- export const useDefaultChatSelection = () => {
78
- const { elements } = useRoomLayoutConferencingScreen();
79
- const roles = useFilteredRoles();
80
- // default is everyone for public chat
81
- if (elements?.chat?.public_chat_enabled) {
82
- return CHAT_SELECTOR.EVERYONE;
83
- }
84
- // sending first role as default
85
- if (roles.length > 0) {
86
- return roles[0];
87
- }
88
- // sending empty
89
- return '';
90
- };
91
-
92
- export const useShowStreamingUI = () => {
93
- const layout = useRoomLayout();
94
- const { join_form } = layout?.screens?.preview?.default?.elements || {};
95
- return join_form?.join_btn_type === JoinForm_JoinBtnType.JOIN_BTN_TYPE_JOIN_AND_GO_LIVE;
96
- };
97
-
98
- // The search results should not have role name matches
99
- export const useParticipants = (params?: { metadata?: { isHandRaised?: boolean }; role?: string; search?: string }) => {
100
- const isConnected = useHMSStore(selectIsConnectedToRoom);
101
- const peerCount = useHMSStore(selectPeerCount);
102
- const availableRoles = useHMSStore(selectAvailableRoleNames);
103
- let participantList = useHMSStore(isConnected ? selectPeers : selectRemotePeers);
104
- const rolesWithParticipants = Array.from(new Set(participantList.map(peer => peer.roleName)));
105
- const vanillaStore = useHMSVanillaStore();
106
- if (params?.metadata?.isHandRaised) {
107
- participantList = participantList.filter(peer => {
108
- return vanillaStore.getState(selectPeerMetadata(peer.id)).isHandRaised;
109
- });
110
- }
111
- if (params?.role && availableRoles.includes(params.role)) {
112
- participantList = participantList.filter(peer => peer.roleName === params.role);
113
- }
114
- if (params?.search) {
115
- const search = params.search;
116
- // Removed peer.roleName?.toLowerCase().includes(search)
117
- participantList = participantList.filter(peer => peer.name.toLowerCase().includes(search));
118
- }
119
- return { participants: participantList, isConnected, peerCount, rolesWithParticipants };
120
- };
121
-
122
- export const useIsLandscape = () => {
123
- const isMobile = parsedUserAgent.getDevice().type === 'mobile';
124
- const isLandscape = useMedia(config.media.ls);
125
- return isMobile && isLandscape;
126
- };
127
-
128
- export const useLandscapeHLSStream = () => {
129
- const isLandscape = useIsLandscape();
130
- const { screenType } = useRoomLayoutConferencingScreen();
131
- return isLandscape && screenType === 'hls_live_streaming';
132
- };
133
-
134
- export const useMobileHLSStream = () => {
135
- const isMobile = useMedia(config.media.md);
136
- const { screenType } = useRoomLayoutConferencingScreen();
137
- return isMobile && screenType === 'hls_live_streaming';
138
- };
139
-
140
- export const useKeyboardHandler = (isPaused: boolean, hlsPlayer: HMSHLSPlayer) => {
141
- const handleKeyEvent = useCallback(
142
- async (event: KeyboardEvent) => {
143
- switch (event.key) {
144
- case ' ':
145
- if (isPaused) {
146
- await hlsPlayer?.play();
147
- } else {
148
- hlsPlayer?.pause();
149
- }
150
- break;
151
- case 'ArrowRight':
152
- hlsPlayer?.seekTo(hlsPlayer?.getVideoElement().currentTime + 10);
153
- break;
154
- case 'ArrowLeft':
155
- hlsPlayer?.seekTo(hlsPlayer?.getVideoElement().currentTime - 10);
156
- break;
157
- }
158
- },
159
- [hlsPlayer, isPaused],
160
- );
161
-
162
- return handleKeyEvent;
163
- };
164
- export interface RTMPRecordingResolution {
165
- width: number;
166
- height: number;
167
- }
168
- export const useRecordingHandler = () => {
169
- const hmsActions = useHMSActions();
170
- const recordingState: HMSRecording = useHMSStore(selectRecordingState);
171
- const [isRecordingLoading, setIsRecordingLoading] = useState(false);
172
- const [recordingStarted, setRecordingState] = useSetAppDataByKey(APP_DATA.recordingStarted);
173
- useEffect(() => {
174
- if (recordingState.browser.error && recordingStarted) {
175
- setRecordingState(false);
176
- }
177
- }, [recordingStarted, recordingState.browser.error, setRecordingState]);
178
- const startRecording = useCallback(
179
- async (resolution: RTMPRecordingResolution | null = null) => {
180
- try {
181
- setRecordingState(true);
182
- setIsRecordingLoading(true);
183
- await hmsActions.startRTMPOrRecording({
184
- resolution: getResolution(resolution),
185
- record: true,
186
- });
187
- } catch (error) {
188
- const err = error as Error;
189
- if (err.message.includes('stream already running')) {
190
- ToastManager.addToast({
191
- title: 'Recording already running',
192
- variant: 'error',
193
- });
194
- } else {
195
- ToastManager.addToast({
196
- title: err.message,
197
- variant: 'error',
198
- });
199
- }
200
- setRecordingState(false);
201
- }
202
- setIsRecordingLoading(false);
203
- },
204
- [hmsActions, setRecordingState],
205
- );
206
- return {
207
- recordingStarted,
208
- startRecording,
209
- isRecordingLoading,
210
- };
211
- };
212
-
213
- export function getResolution(
214
- recordingResolution: RTMPRecordingResolution | null,
215
- ): RTMPRecordingResolution | undefined {
216
- if (!recordingResolution) {
217
- return undefined;
218
- }
219
- const resolution: RTMPRecordingResolution = RTMP_RECORD_DEFAULT_RESOLUTION;
220
- if (recordingResolution.width) {
221
- resolution.width = recordingResolution.width;
222
- }
223
- if (recordingResolution.height) {
224
- resolution.height = recordingResolution.height;
225
- }
226
- return resolution;
227
- }
228
-
229
- export interface WaitingRoomInfo {
230
- isNotAllowedToPublish: boolean;
231
- isScreenOnlyPublishParams: boolean;
232
- hasSubscribedRolePublishing: boolean;
233
- }
234
- export function useWaitingRoomInfo(): WaitingRoomInfo {
235
- const localPeerRole = useHMSStore(selectLocalPeerRole);
236
- const { video, audio, screen } = useHMSStore(selectIsAllowedToPublish);
237
- const isScreenShareAllowed = isScreenshareSupported();
238
- const roles = useHMSStore(selectRolesMap);
239
- const peersByRoles = useHMSStore(selectPeersByRoles(localPeerRole?.subscribeParams.subscribeToRoles || []));
240
- // show no publish as screenshare in mweb is not possible
241
- const isNotAllowedToPublish = !(video || audio || (screen && isScreenShareAllowed));
242
- const isScreenOnlyPublishParams: boolean = screen && !(video || audio);
243
- const hasSubscribedRolePublishing: boolean = useMemo(() => {
244
- return peersByRoles.some((peer: HMSPeer) => {
245
- if (peer.roleName && roles[peer.roleName] && !peer.isLocal) {
246
- return !!roles[peer.roleName].publishParams?.allowed.length;
247
- }
248
- return false;
249
- });
250
- }, [peersByRoles, roles]);
251
-
252
- return {
253
- isNotAllowedToPublish,
254
- isScreenOnlyPublishParams,
255
- hasSubscribedRolePublishing,
256
- };
257
- }