@100mslive/roomkit-react 0.4.3-alpha.0 → 0.4.3-alpha.10

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 (442) hide show
  1. package/dist/index.cjs.css +214 -223
  2. package/dist/index.cjs.css.map +3 -3
  3. package/dist/index.cjs.js +489 -727
  4. package/dist/index.cjs.js.map +4 -4
  5. package/dist/index.css +214 -223
  6. package/dist/index.css.map +3 -3
  7. package/dist/index.js +501 -739
  8. package/dist/index.js.map +4 -4
  9. package/dist/meta.cjs.json +93 -149
  10. package/dist/meta.esbuild.json +92 -148
  11. package/package.json +10 -24
  12. package/src/Accordion/Accordion.stories.tsx +0 -50
  13. package/src/Accordion/Accordion.tsx +0 -88
  14. package/src/Accordion/index.ts +0 -8
  15. package/src/AudioLevel/AudioLevel.tsx +0 -84
  16. package/src/AudioLevel/audio-level.png +0 -0
  17. package/src/AudioLevel/index.ts +0 -2
  18. package/src/AudioLevel/useBorderAudioLevel.tsx +0 -34
  19. package/src/Avatar/Avatar.stories.tsx +0 -33
  20. package/src/Avatar/Avatar.tsx +0 -60
  21. package/src/Avatar/getAvatarBg.ts +0 -50
  22. package/src/Avatar/index.ts +0 -1
  23. package/src/Button/Button.mdx +0 -43
  24. package/src/Button/Button.stories.tsx +0 -52
  25. package/src/Button/Button.tsx +0 -210
  26. package/src/Button/index.tsx +0 -1
  27. package/src/Chat/Chat.mdx +0 -39
  28. package/src/Chat/Chat.stories.tsx +0 -39
  29. package/src/Checkbox/Checkbox.stories.tsx +0 -61
  30. package/src/Checkbox/Checkbox.tsx +0 -35
  31. package/src/Checkbox/index.tsx +0 -1
  32. package/src/Collapsible/Collapsible.tsx +0 -34
  33. package/src/Collapsible/index.tsx +0 -1
  34. package/src/Diagnostics/AudioTest.tsx +0 -188
  35. package/src/Diagnostics/BrowserTest.tsx +0 -141
  36. package/src/Diagnostics/ConnectivityTest.tsx +0 -383
  37. package/src/Diagnostics/DeviceSelector.jsx +0 -71
  38. package/src/Diagnostics/Diagnostics.tsx +0 -190
  39. package/src/Diagnostics/DiagnosticsContext.ts +0 -46
  40. package/src/Diagnostics/VideoTest.tsx +0 -72
  41. package/src/Diagnostics/components.tsx +0 -70
  42. package/src/Diagnostics/index.ts +0 -1
  43. package/src/Divider/Divider.tsx +0 -45
  44. package/src/Divider/HorizontalDivider.stories.tsx +0 -34
  45. package/src/Divider/VerticalDivider.stories.tsx +0 -40
  46. package/src/Divider/index.ts +0 -1
  47. package/src/Dropdown/Dropdown.stories.tsx +0 -94
  48. package/src/Dropdown/Dropdown.tsx +0 -145
  49. package/src/Dropdown/index.tsx +0 -1
  50. package/src/Fieldset/Fieldset.stories.tsx +0 -29
  51. package/src/Fieldset/Fieldset.tsx +0 -11
  52. package/src/Fieldset/index.tsx +0 -1
  53. package/src/Footer/Footer.stories.tsx +0 -61
  54. package/src/Footer/Footer.tsx +0 -47
  55. package/src/Footer/index.tsx +0 -1
  56. package/src/IconButton/IconButton.tsx +0 -43
  57. package/src/IconButton/index.tsx +0 -1
  58. package/src/Icons/Icons.stories.mdx +0 -10
  59. package/src/Icons/IconsList.jsx +0 -17
  60. package/src/Input/Input.stories.tsx +0 -25
  61. package/src/Input/Input.tsx +0 -109
  62. package/src/Input/PasswordInput.stories.tsx +0 -53
  63. package/src/Input/index.tsx +0 -1
  64. package/src/Introduction/Integrating.stories.mdx +0 -100
  65. package/src/Introduction/Introduction.stories.mdx +0 -9
  66. package/src/Label/Label.tsx +0 -8
  67. package/src/Label/index.ts +0 -1
  68. package/src/Layout/Box.tsx +0 -3
  69. package/src/Layout/Flex.tsx +0 -76
  70. package/src/Layout/index.tsx +0 -2
  71. package/src/Link/Link.stories.tsx +0 -18
  72. package/src/Link/Link.tsx +0 -54
  73. package/src/Link/index.tsx +0 -2
  74. package/src/Loading/Loading.mdx +0 -15
  75. package/src/Loading/Loading.stories.tsx +0 -37
  76. package/src/Loading/Loading.tsx +0 -30
  77. package/src/Loading/index.ts +0 -1
  78. package/src/Modal/Dialog.mdx +0 -19
  79. package/src/Modal/Dialog.stories.tsx +0 -68
  80. package/src/Modal/Dialog.tsx +0 -57
  81. package/src/Modal/DialogContent.tsx +0 -65
  82. package/src/Modal/index.ts +0 -1
  83. package/src/Pagination/StyledPagination.stories.tsx +0 -80
  84. package/src/Pagination/StyledPagination.tsx +0 -70
  85. package/src/Pagination/index.tsx +0 -1
  86. package/src/Popover/Popover.mdx +0 -9
  87. package/src/Popover/Popover.stories.tsx +0 -95
  88. package/src/Popover/index.tsx +0 -34
  89. package/src/Prebuilt/App.tsx +0 -318
  90. package/src/Prebuilt/AppContext.tsx +0 -33
  91. package/src/Prebuilt/AppStateContext.tsx +0 -95
  92. package/src/Prebuilt/IconButton.tsx +0 -26
  93. package/src/Prebuilt/Prebuilt.stories.tsx +0 -46
  94. package/src/Prebuilt/common/PeersSorter.ts +0 -111
  95. package/src/Prebuilt/common/constants.ts +0 -151
  96. package/src/Prebuilt/common/hooks.ts +0 -257
  97. package/src/Prebuilt/common/utils.js +0 -185
  98. package/src/Prebuilt/components/AppData/AppData.tsx +0 -208
  99. package/src/Prebuilt/components/AppData/useChatState.js +0 -18
  100. package/src/Prebuilt/components/AppData/useSheet.ts +0 -33
  101. package/src/Prebuilt/components/AppData/useSidepane.js +0 -99
  102. package/src/Prebuilt/components/AppData/useSidepaneResetOnLayoutUpdate.tsx +0 -22
  103. package/src/Prebuilt/components/AppData/useUISettings.js +0 -212
  104. package/src/Prebuilt/components/AudioVideoToggle.tsx +0 -411
  105. package/src/Prebuilt/components/AuthToken.tsx +0 -148
  106. package/src/Prebuilt/components/CaptionIcon.tsx +0 -27
  107. package/src/Prebuilt/components/Chat/ArrowNavigation.tsx +0 -44
  108. package/src/Prebuilt/components/Chat/Chat.tsx +0 -190
  109. package/src/Prebuilt/components/Chat/ChatActions.tsx +0 -314
  110. package/src/Prebuilt/components/Chat/ChatBody.tsx +0 -493
  111. package/src/Prebuilt/components/Chat/ChatFooter.tsx +0 -316
  112. package/src/Prebuilt/components/Chat/ChatSelector.tsx +0 -228
  113. package/src/Prebuilt/components/Chat/ChatSelectorContainer.tsx +0 -158
  114. package/src/Prebuilt/components/Chat/ChatStates.tsx +0 -73
  115. package/src/Prebuilt/components/Chat/EmptyChat.tsx +0 -58
  116. package/src/Prebuilt/components/Chat/MwebChatOption.tsx +0 -24
  117. package/src/Prebuilt/components/Chat/PinnedMessage.tsx +0 -140
  118. package/src/Prebuilt/components/Chat/StickIndicator.tsx +0 -24
  119. package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +0 -32
  120. package/src/Prebuilt/components/Chat/useUnreadCount.ts +0 -19
  121. package/src/Prebuilt/components/Chat/utils.ts +0 -11
  122. package/src/Prebuilt/components/ChatSettings.tsx +0 -68
  123. package/src/Prebuilt/components/Chip.tsx +0 -40
  124. package/src/Prebuilt/components/ConferenceScreen.tsx +0 -205
  125. package/src/Prebuilt/components/Connection/ConnectionIndicator.tsx +0 -89
  126. package/src/Prebuilt/components/Connection/TileConnection.tsx +0 -93
  127. package/src/Prebuilt/components/Connection/connectionQualityUtils.js +0 -37
  128. package/src/Prebuilt/components/EmojiReaction.jsx +0 -100
  129. package/src/Prebuilt/components/EndCallFeedback/Feedback.tsx +0 -71
  130. package/src/Prebuilt/components/EndCallFeedback/FeedbackForm.tsx +0 -381
  131. package/src/Prebuilt/components/EndCallFeedback/ThankyouView.tsx +0 -64
  132. package/src/Prebuilt/components/ErrorBoundary.jsx +0 -102
  133. package/src/Prebuilt/components/Footer/ChatToggle.tsx +0 -53
  134. package/src/Prebuilt/components/Footer/EmojiCard.jsx +0 -34
  135. package/src/Prebuilt/components/Footer/Footer.tsx +0 -115
  136. package/src/Prebuilt/components/Footer/PaginatedParticipants.tsx +0 -124
  137. package/src/Prebuilt/components/Footer/ParticipantList.tsx +0 -478
  138. package/src/Prebuilt/components/Footer/PollsToggle.tsx +0 -37
  139. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +0 -183
  140. package/src/Prebuilt/components/Footer/RoleOptions.tsx +0 -215
  141. package/src/Prebuilt/components/Footer/WhiteboardToggle.tsx +0 -52
  142. package/src/Prebuilt/components/FullPageProgress.tsx +0 -22
  143. package/src/Prebuilt/components/HMSVideo/Controls.jsx +0 -22
  144. package/src/Prebuilt/components/HMSVideo/FullscreenButton.tsx +0 -13
  145. package/src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.tsx +0 -72
  146. package/src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx +0 -15
  147. package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx +0 -248
  148. package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +0 -75
  149. package/src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx +0 -86
  150. package/src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx +0 -27
  151. package/src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx +0 -158
  152. package/src/Prebuilt/components/HMSVideo/PlayerContext.tsx +0 -15
  153. package/src/Prebuilt/components/HMSVideo/SeekControl.tsx +0 -22
  154. package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +0 -100
  155. package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +0 -52
  156. package/src/Prebuilt/components/HMSVideo/VolumeControl.tsx +0 -70
  157. package/src/Prebuilt/components/HMSVideo/index.ts +0 -24
  158. package/src/Prebuilt/components/HMSVideo/utils.ts +0 -37
  159. package/src/Prebuilt/components/Header/Header.tsx +0 -52
  160. package/src/Prebuilt/components/Header/HeaderComponents.jsx +0 -57
  161. package/src/Prebuilt/components/Header/ParticipantFilter.jsx +0 -89
  162. package/src/Prebuilt/components/Header/RoomDetailsHeader.tsx +0 -51
  163. package/src/Prebuilt/components/Header/StreamActions.tsx +0 -297
  164. package/src/Prebuilt/components/Header/common.jsx +0 -196
  165. package/src/Prebuilt/components/Header/index.tsx +0 -1
  166. package/src/Prebuilt/components/HlsStatsOverlay.jsx +0 -89
  167. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.stories.tsx +0 -40
  168. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +0 -167
  169. package/src/Prebuilt/components/Input/KeyboardInputManager.js +0 -107
  170. package/src/Prebuilt/components/InsetTile.tsx +0 -136
  171. package/src/Prebuilt/components/LayoutModeSelector.tsx +0 -112
  172. package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +0 -166
  173. package/src/Prebuilt/components/Leave/EndSessionContent.tsx +0 -64
  174. package/src/Prebuilt/components/Leave/LeaveAtoms.tsx +0 -26
  175. package/src/Prebuilt/components/Leave/LeaveCard.tsx +0 -36
  176. package/src/Prebuilt/components/Leave/LeaveRoom.tsx +0 -82
  177. package/src/Prebuilt/components/Leave/LeaveSessionContent.tsx +0 -61
  178. package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +0 -135
  179. package/src/Prebuilt/components/LeaveScreen.tsx +0 -71
  180. package/src/Prebuilt/components/MoreSettings/ActionTile.jsx +0 -60
  181. package/src/Prebuilt/components/MoreSettings/BulkRoleChangeModal.jsx +0 -139
  182. package/src/Prebuilt/components/MoreSettings/CaptionContent.tsx +0 -143
  183. package/src/Prebuilt/components/MoreSettings/CaptionModal.tsx +0 -37
  184. package/src/Prebuilt/components/MoreSettings/ChangeNameContent.tsx +0 -123
  185. package/src/Prebuilt/components/MoreSettings/ChangeNameModal.tsx +0 -78
  186. package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +0 -81
  187. package/src/Prebuilt/components/MoreSettings/FullScreenItem.tsx +0 -26
  188. package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +0 -29
  189. package/src/Prebuilt/components/MoreSettings/MuteAllContent.tsx +0 -81
  190. package/src/Prebuilt/components/MoreSettings/MuteAllModal.tsx +0 -72
  191. package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +0 -282
  192. package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +0 -387
  193. package/src/Prebuilt/components/MoreSettings/constants.ts +0 -14
  194. package/src/Prebuilt/components/MwebLandscapePrompt.tsx +0 -81
  195. package/src/Prebuilt/components/Notifications/AutoplayBlockedModal.tsx +0 -39
  196. package/src/Prebuilt/components/Notifications/ChatNotifications.tsx +0 -34
  197. package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +0 -18
  198. package/src/Prebuilt/components/Notifications/DeviceInUseError.tsx +0 -86
  199. package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +0 -56
  200. package/src/Prebuilt/components/Notifications/HLSFailureModal.tsx +0 -71
  201. package/src/Prebuilt/components/Notifications/HandRaisedNotifications.tsx +0 -78
  202. package/src/Prebuilt/components/Notifications/InitErrorModal.tsx +0 -42
  203. package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +0 -24
  204. package/src/Prebuilt/components/Notifications/Notifications.tsx +0 -65
  205. package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +0 -52
  206. package/src/Prebuilt/components/Notifications/PermissionErrorModal.tsx +0 -144
  207. package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +0 -71
  208. package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +0 -33
  209. package/src/Prebuilt/components/Notifications/RoleChangeNotification.tsx +0 -24
  210. package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +0 -61
  211. package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +0 -41
  212. package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +0 -63
  213. package/src/Prebuilt/components/Notifications/TranscriptionNotifications.tsx +0 -58
  214. package/src/Prebuilt/components/Notifications/index.tsx +0 -1
  215. package/src/Prebuilt/components/PIP/PIPChat.tsx +0 -292
  216. package/src/Prebuilt/components/PIP/PIPChatOption.tsx +0 -18
  217. package/src/Prebuilt/components/PIP/PIPComponent.tsx +0 -90
  218. package/src/Prebuilt/components/PIP/PIPManager.ts +0 -335
  219. package/src/Prebuilt/components/PIP/PIPProvider.tsx +0 -56
  220. package/src/Prebuilt/components/PIP/PIPWindow.tsx +0 -13
  221. package/src/Prebuilt/components/PIP/SetupMediaSession.js +0 -60
  222. package/src/Prebuilt/components/PIP/context.ts +0 -10
  223. package/src/Prebuilt/components/PIP/index.jsx +0 -6
  224. package/src/Prebuilt/components/PIP/pip.test.js +0 -72
  225. package/src/Prebuilt/components/PIP/pipUtils.js +0 -183
  226. package/src/Prebuilt/components/PIP/usePIPChat.tsx +0 -105
  227. package/src/Prebuilt/components/PIP/usePIPWindow.tsx +0 -12
  228. package/src/Prebuilt/components/Pagination.tsx +0 -60
  229. package/src/Prebuilt/components/Polls/CreatePollQuiz/PollsQuizMenu.tsx +0 -248
  230. package/src/Prebuilt/components/Polls/CreateQuestions/CreateQuestions.jsx +0 -142
  231. package/src/Prebuilt/components/Polls/CreateQuestions/DeleteQuestionModal.tsx +0 -74
  232. package/src/Prebuilt/components/Polls/CreateQuestions/QuestionForm.tsx +0 -324
  233. package/src/Prebuilt/components/Polls/CreateQuestions/SavedQuestion.tsx +0 -64
  234. package/src/Prebuilt/components/Polls/Polls.tsx +0 -31
  235. package/src/Prebuilt/components/Polls/Voting/LeaderboardEntry.tsx +0 -76
  236. package/src/Prebuilt/components/Polls/Voting/LeaderboardSummary.tsx +0 -116
  237. package/src/Prebuilt/components/Polls/Voting/PeerParticipationSummary.tsx +0 -60
  238. package/src/Prebuilt/components/Polls/Voting/QuestionCard.jsx +0 -221
  239. package/src/Prebuilt/components/Polls/Voting/StandardVoting.tsx +0 -47
  240. package/src/Prebuilt/components/Polls/Voting/StatisticBox.tsx +0 -20
  241. package/src/Prebuilt/components/Polls/Voting/TimedVoting.tsx +0 -55
  242. package/src/Prebuilt/components/Polls/Voting/Voting.tsx +0 -143
  243. package/src/Prebuilt/components/Polls/Voting/useQuizSummary.tsx +0 -50
  244. package/src/Prebuilt/components/Polls/common/Line.tsx +0 -4
  245. package/src/Prebuilt/components/Polls/common/MultipleChoiceOptions.jsx +0 -115
  246. package/src/Prebuilt/components/Polls/common/OptionInputWithDelete.tsx +0 -38
  247. package/src/Prebuilt/components/Polls/common/SingleChoiceOptions.jsx +0 -140
  248. package/src/Prebuilt/components/Polls/common/StatusIndicator.tsx +0 -35
  249. package/src/Prebuilt/components/Polls/common/VoteCount.tsx +0 -15
  250. package/src/Prebuilt/components/Polls/common/VoteProgress.tsx +0 -18
  251. package/src/Prebuilt/components/Polls/common/constants.ts +0 -5
  252. package/src/Prebuilt/components/Polls/common/utils.ts +0 -22
  253. package/src/Prebuilt/components/Preview/PreviewForm.tsx +0 -94
  254. package/src/Prebuilt/components/Preview/PreviewJoin.tsx +0 -292
  255. package/src/Prebuilt/components/Preview/PreviewScreen.tsx +0 -38
  256. package/src/Prebuilt/components/PreviousRoleInMetadata.tsx +0 -20
  257. package/src/Prebuilt/components/RaiseHand.tsx +0 -30
  258. package/src/Prebuilt/components/RemoveParticipant.tsx +0 -35
  259. package/src/Prebuilt/components/RoleChangeModal.tsx +0 -188
  260. package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +0 -75
  261. package/src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx +0 -94
  262. package/src/Prebuilt/components/RoomDetails/Duration.tsx +0 -26
  263. package/src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx +0 -63
  264. package/src/Prebuilt/components/RoomDetails/RoomDetailsRow.tsx +0 -23
  265. package/src/Prebuilt/components/RoomDetails/RoomDetailsSheet.tsx +0 -45
  266. package/src/Prebuilt/components/ScreenShareToggle.jsx +0 -58
  267. package/src/Prebuilt/components/ScreenshareDisplay.tsx +0 -39
  268. package/src/Prebuilt/components/ScreenshareTile.tsx +0 -134
  269. package/src/Prebuilt/components/SecondaryTiles.tsx +0 -81
  270. package/src/Prebuilt/components/Settings/DeviceSettings.jsx +0 -208
  271. package/src/Prebuilt/components/Settings/LayoutSettings.tsx +0 -74
  272. package/src/Prebuilt/components/Settings/NotificationSettings.tsx +0 -66
  273. package/src/Prebuilt/components/Settings/SettingsModal.jsx +0 -301
  274. package/src/Prebuilt/components/Settings/StartRecording.jsx +0 -101
  275. package/src/Prebuilt/components/Settings/SwitchWithLabel.tsx +0 -53
  276. package/src/Prebuilt/components/Settings/common.ts +0 -16
  277. package/src/Prebuilt/components/ShareMenuIcon.jsx +0 -27
  278. package/src/Prebuilt/components/SidePaneTabs.tsx +0 -214
  279. package/src/Prebuilt/components/StatsForNerds.jsx +0 -373
  280. package/src/Prebuilt/components/Streaming/Common.jsx +0 -143
  281. package/src/Prebuilt/components/Streaming/ResolutionInput.jsx +0 -88
  282. package/src/Prebuilt/components/TileMenu/TileMenu.tsx +0 -148
  283. package/src/Prebuilt/components/TileMenu/TileMenuContent.tsx +0 -393
  284. package/src/Prebuilt/components/TileMenu/utils.ts +0 -7
  285. package/src/Prebuilt/components/Toast/Toast.jsx +0 -17
  286. package/src/Prebuilt/components/Toast/ToastBatcher.js +0 -64
  287. package/src/Prebuilt/components/Toast/ToastConfig.jsx +0 -177
  288. package/src/Prebuilt/components/Toast/ToastContainer.jsx +0 -30
  289. package/src/Prebuilt/components/Toast/ToastManager.js +0 -44
  290. package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +0 -62
  291. package/src/Prebuilt/components/VideoLayouts/Grid.tsx +0 -43
  292. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +0 -155
  293. package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +0 -91
  294. package/src/Prebuilt/components/VideoLayouts/RoleProminence.tsx +0 -66
  295. package/src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx +0 -74
  296. package/src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx +0 -93
  297. package/src/Prebuilt/components/VideoLayouts/interface.ts +0 -11
  298. package/src/Prebuilt/components/VideoTile.tsx +0 -203
  299. package/src/Prebuilt/components/VirtualBackground/VBCollection.tsx +0 -52
  300. package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +0 -130
  301. package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +0 -57
  302. package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +0 -252
  303. package/src/Prebuilt/components/VirtualBackground/VBToggle.tsx +0 -50
  304. package/src/Prebuilt/components/hooks/useAudioOutputTest.tsx +0 -20
  305. package/src/Prebuilt/components/hooks/useAutoStartStreaming.tsx +0 -70
  306. package/src/Prebuilt/components/hooks/useChatBlacklist.ts +0 -29
  307. package/src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx +0 -17
  308. package/src/Prebuilt/components/hooks/useDropdownList.ts +0 -24
  309. package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +0 -3
  310. package/src/Prebuilt/components/hooks/useFullscreen.ts +0 -46
  311. package/src/Prebuilt/components/hooks/useGroupOnStageActions.tsx +0 -54
  312. package/src/Prebuilt/components/hooks/useMetadata.tsx +0 -56
  313. package/src/Prebuilt/components/hooks/usePeerOnStageActions.tsx +0 -49
  314. package/src/Prebuilt/components/hooks/usePinnedBy.tsx +0 -22
  315. package/src/Prebuilt/components/hooks/usePinnedMessages.ts +0 -78
  316. package/src/Prebuilt/components/hooks/usePlaylist.js +0 -25
  317. package/src/Prebuilt/components/hooks/usePlaylistMusic.js +0 -35
  318. package/src/Prebuilt/components/hooks/useRedirectToLeave.tsx +0 -23
  319. package/src/Prebuilt/components/hooks/useRoleProminencePeers.tsx +0 -39
  320. package/src/Prebuilt/components/hooks/useScreenshareAudio.js +0 -28
  321. package/src/Prebuilt/components/hooks/useTileLayout.tsx +0 -128
  322. package/src/Prebuilt/components/hooks/useUnreadPollQuizPresent.tsx +0 -17
  323. package/src/Prebuilt/components/hooks/useUserPreferences.jsx +0 -26
  324. package/src/Prebuilt/components/hooks/useVideoTileLayout.ts +0 -26
  325. package/src/Prebuilt/components/init/Init.jsx +0 -31
  326. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +0 -42
  327. package/src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx +0 -31
  328. package/src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx +0 -32
  329. package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +0 -211
  330. package/src/Prebuilt/components/pdfAnnotator/submitPdf.jsx +0 -48
  331. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +0 -71
  332. package/src/Prebuilt/components/peerTileUtils.tsx +0 -42
  333. package/src/Prebuilt/images/android-perm-1.png +0 -0
  334. package/src/Prebuilt/images/empty-chat.svg +0 -12
  335. package/src/Prebuilt/images/ios-perm-0.png +0 -0
  336. package/src/Prebuilt/images/pdf-share.png +0 -0
  337. package/src/Prebuilt/images/rtmp.png +0 -0
  338. package/src/Prebuilt/images/screen-share.png +0 -0
  339. package/src/Prebuilt/images/transaction_error.svg +0 -12
  340. package/src/Prebuilt/index.ts +0 -1
  341. package/src/Prebuilt/layouts/EmbedView.jsx +0 -94
  342. package/src/Prebuilt/layouts/HLSView.jsx +0 -747
  343. package/src/Prebuilt/layouts/PDFView.jsx +0 -67
  344. package/src/Prebuilt/layouts/Sheet.tsx +0 -14
  345. package/src/Prebuilt/layouts/SidePane.tsx +0 -241
  346. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +0 -164
  347. package/src/Prebuilt/layouts/WaitingView.tsx +0 -52
  348. package/src/Prebuilt/plugins/CaptionsViewer.tsx +0 -261
  349. package/src/Prebuilt/plugins/FlyingEmoji.jsx +0 -154
  350. package/src/Prebuilt/plugins/RemoteStopScreenshare.jsx +0 -18
  351. package/src/Prebuilt/plugins/transcription/Transcriber.js +0 -216
  352. package/src/Prebuilt/plugins/transcription/TranscriptionButton.jsx +0 -138
  353. package/src/Prebuilt/plugins/transcription/index.jsx +0 -1
  354. package/src/Prebuilt/primitives/DialogContent.jsx +0 -285
  355. package/src/Prebuilt/primitives/DropdownTrigger.jsx +0 -46
  356. package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +0 -60
  357. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +0 -88
  358. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.ts +0 -10
  359. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.ts +0 -112
  360. package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +0 -53
  361. package/src/Prebuilt/services/FeatureFlags.jsx +0 -46
  362. package/src/Progress/index.tsx +0 -17
  363. package/src/QRCode/QRCode.mdx +0 -9
  364. package/src/QRCode/QRCode.stories.tsx +0 -29
  365. package/src/QRCode/QRCode.tsx +0 -6
  366. package/src/QRCode/index.tsx +0 -1
  367. package/src/RadioGroup/RadioGroup.stories.tsx +0 -32
  368. package/src/RadioGroup/RadioGroup.tsx +0 -33
  369. package/src/RadioGroup/index.tsx +0 -1
  370. package/src/ReactSelect/ReactSelect.stories.tsx +0 -83
  371. package/src/ReactSelect/ReactSelect.tsx +0 -97
  372. package/src/ReactSelect/index.ts +0 -1
  373. package/src/Select/Select.stories.tsx +0 -33
  374. package/src/Select/Select.tsx +0 -63
  375. package/src/Select/index.ts +0 -1
  376. package/src/Sheet/Sheet.mdx +0 -19
  377. package/src/Sheet/Sheet.stories.tsx +0 -103
  378. package/src/Sheet/Sheet.tsx +0 -122
  379. package/src/Sheet/index.ts +0 -1
  380. package/src/Slider/Slider.stories.tsx +0 -21
  381. package/src/Slider/Slider.tsx +0 -70
  382. package/src/Slider/index.ts +0 -1
  383. package/src/Stats/Stats.tsx +0 -243
  384. package/src/Stats/StyledStats.tsx +0 -57
  385. package/src/Stats/formatBytes.ts +0 -19
  386. package/src/Stats/index.tsx +0 -2
  387. package/src/Stats/useQoE.ts +0 -79
  388. package/src/Switch/Switch.mdx +0 -11
  389. package/src/Switch/Switch.stories.tsx +0 -46
  390. package/src/Switch/Switch.tsx +0 -52
  391. package/src/Switch/index.ts +0 -1
  392. package/src/Tabs/Tabs.stories.tsx +0 -77
  393. package/src/Tabs/Tabs.tsx +0 -41
  394. package/src/Tabs/index.tsx +0 -1
  395. package/src/Text/Text.stories.tsx +0 -21
  396. package/src/Text/Text.tsx +0 -149
  397. package/src/Text/index.tsx +0 -1
  398. package/src/TextArea/TextArea.tsx +0 -30
  399. package/src/TextArea/index.tsx +0 -1
  400. package/src/Theme/Theme.stories.mdx +0 -8
  401. package/src/Theme/ThemeProvider.tsx +0 -98
  402. package/src/Theme/ThemeStory.jsx +0 -56
  403. package/src/Theme/base.config.ts +0 -236
  404. package/src/Theme/index.tsx +0 -2
  405. package/src/Theme/stitches.config.ts +0 -88
  406. package/src/Theme/useSSR.tsx +0 -24
  407. package/src/TileMenu/StyledMenuTile.tsx +0 -105
  408. package/src/TileMenu/TileMenu.tsx +0 -98
  409. package/src/TileMenu/index.tsx +0 -1
  410. package/src/Toast/AppToast.stories.tsx +0 -56
  411. package/src/Toast/Toast.mdx +0 -19
  412. package/src/Toast/Toast.stories.tsx +0 -57
  413. package/src/Toast/Toast.tsx +0 -170
  414. package/src/Toast/index.tsx +0 -1
  415. package/src/Tooltip/Tooltip.stories.tsx +0 -62
  416. package/src/Tooltip/Tooltip.tsx +0 -79
  417. package/src/Tooltip/index.ts +0 -1
  418. package/src/Video/UseVideo.mdx +0 -22
  419. package/src/Video/UseVideo.stories.tsx +0 -26
  420. package/src/Video/Video.mdx +0 -24
  421. package/src/Video/Video.stories.tsx +0 -27
  422. package/src/Video/Video.tsx +0 -61
  423. package/src/Video/index.tsx +0 -1
  424. package/src/VideoList/StyledVideoList.tsx +0 -39
  425. package/src/VideoList/VideoList.stories.tsx +0 -92
  426. package/src/VideoList/index.tsx +0 -2
  427. package/src/VideoList/videoListUtils.tsx +0 -20
  428. package/src/VideoTile/StyledVideoTile.tsx +0 -146
  429. package/src/VideoTile/VideoTile.mdx +0 -28
  430. package/src/VideoTile/VideoTile.stories.tsx +0 -32
  431. package/src/VideoTile/index.tsx +0 -1
  432. package/src/context/DialogContext.tsx +0 -13
  433. package/src/fixtures/chats.ts +0 -25
  434. package/src/fixtures/peers.ts +0 -27
  435. package/src/fixtures/tracks.ts +0 -11
  436. package/src/hooks/useDialogContainerSelector.tsx +0 -7
  437. package/src/index.ts +0 -41
  438. package/src/store/SetupFakeStore.ts +0 -33
  439. package/src/store/StorybookSDK.ts +0 -231
  440. package/src/utils/animations.ts +0 -114
  441. package/src/utils/index.ts +0 -2
  442. package/src/utils/styles.ts +0 -22
@@ -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
- }
@@ -1,185 +0,0 @@
1
- import { QUESTION_TYPE } from './constants';
2
-
3
- // eslint-disable-next-line complexity
4
- export function shadeColor(color, percent) {
5
- let R = parseInt(color.substring(1, 3), 16);
6
- let G = parseInt(color.substring(3, 5), 16);
7
- let B = parseInt(color.substring(5, 7), 16);
8
-
9
- R = Math.floor((R * (100 + percent)) / 100);
10
- G = Math.floor((G * (100 + percent)) / 100);
11
- B = Math.floor((B * (100 + percent)) / 100);
12
-
13
- R = R < 255 ? R : 255;
14
- G = G < 255 ? G : 255;
15
- B = B < 255 ? B : 255;
16
-
17
- const RR = R.toString(16).length === 1 ? `0${R.toString(16)}` : R.toString(16);
18
- const GG = G.toString(16).length === 1 ? `0${G.toString(16)}` : G.toString(16);
19
- const BB = B.toString(16).length === 1 ? `0${B.toString(16)}` : B.toString(16);
20
-
21
- return `#${RR}${GG}${BB}`;
22
- }
23
-
24
- /**
25
- * TODO: this is currently an O(N**2) function, don't use with peer lists, it's currently
26
- * being used to find intersection between list of role names where the complexity shouldn't matter much.
27
- */
28
- export const arrayIntersection = (a, b) => {
29
- if (a === undefined || b === undefined) {
30
- return [];
31
- }
32
- // ensure "a" is the bigger array
33
- if (b.length > a.length) {
34
- let t = b;
35
- b = a;
36
- a = t;
37
- }
38
- return a.filter(function (e) {
39
- return b.indexOf(e) > -1;
40
- });
41
- };
42
-
43
- export const getMetadata = metadataString => {
44
- try {
45
- return !metadataString ? {} : JSON.parse(metadataString);
46
- } catch (error) {
47
- return {};
48
- }
49
- };
50
-
51
- export const metadataProps = function (peer) {
52
- return {
53
- isHandRaised: getMetadata(peer.metadata)?.isHandRaised,
54
- };
55
- };
56
-
57
- export const isScreenshareSupported = () => {
58
- return typeof navigator.mediaDevices.getDisplayMedia !== 'undefined';
59
- };
60
-
61
- export const metadataPayloadParser = payload => {
62
- try {
63
- const data = window.atob(payload);
64
- const parsedData = JSON.parse(data);
65
- return parsedData;
66
- } catch (e) {
67
- return { payload };
68
- }
69
- };
70
-
71
- // For bottom action sheet, returns updated height based on drag
72
- export const getUpdatedHeight = (e, MINIMUM_HEIGHT) => {
73
- const heightToPercentage = 100 - ((e?.touches?.[0] || e).pageY / window.innerHeight) * 100;
74
- // Snap to top if height > 80%, should be at least 40vh
75
- const sheetHeightInVH = Math.max(MINIMUM_HEIGHT, heightToPercentage > 80 ? 100 : heightToPercentage);
76
- return `${sheetHeightInVH}vh`;
77
- };
78
-
79
- export const getFormattedCount = num => {
80
- const formatter = new Intl.NumberFormat('en', { notation: 'compact', maximumFractionDigits: 2 });
81
- const formattedNum = formatter.format(num);
82
- return formattedNum;
83
- };
84
-
85
- export const formatTime = timeInSeconds => {
86
- timeInSeconds = Math.floor(timeInSeconds / 1000);
87
- const hours = Math.floor(timeInSeconds / 3600);
88
- const minutes = Math.floor((timeInSeconds % 3600) / 60);
89
- const seconds = timeInSeconds % 60;
90
- const hour = hours !== 0 ? `${hours < 10 ? '0' : ''}${hours}:` : '';
91
- return `${hour}${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
92
- };
93
-
94
- const compareArrays = (a, b) => {
95
- if (a.length !== b.length) return false;
96
- else {
97
- // Comparing each element of your array
98
- for (var i = 0; i < a.length; i++) {
99
- if (a[i] !== b[i]) {
100
- return false;
101
- }
102
- }
103
- return true;
104
- }
105
- };
106
-
107
- export const checkCorrectAnswer = (answer, localPeerResponse, type) => {
108
- if (type === QUESTION_TYPE.SINGLE_CHOICE) {
109
- return answer?.option === localPeerResponse?.option;
110
- } else if (type === QUESTION_TYPE.MULTIPLE_CHOICE) {
111
- return answer?.options && localPeerResponse?.options && compareArrays(answer?.options, localPeerResponse?.options);
112
- }
113
- };
114
-
115
- export const isValidTextInput = (text, minLength = 1, maxLength = 1024) => {
116
- return text && text.length >= minLength && text.length <= maxLength;
117
- };
118
-
119
- export const calculateAvatarAndAttribBoxSize = (calculatedWidth, calculatedHeight) => {
120
- if (!calculatedWidth || !calculatedHeight) {
121
- return [undefined, undefined];
122
- }
123
-
124
- let avatarSize = 'large';
125
- if (calculatedWidth <= 150 || calculatedHeight <= 150) {
126
- avatarSize = 'small';
127
- } else if (calculatedWidth <= 300 || calculatedHeight <= 300) {
128
- avatarSize = 'medium';
129
- }
130
-
131
- let attribBoxSize = 'medium';
132
- if (calculatedWidth <= 180 || calculatedHeight <= 180) {
133
- attribBoxSize = 'small';
134
- }
135
-
136
- return [avatarSize, attribBoxSize];
137
- };
138
-
139
- export const isMobileUserAgent = /Mobi|Android|iPhone/i.test(navigator.userAgent);
140
-
141
- export const getPeerResponses = (questions, peerid, userid) => {
142
- return questions.map(question =>
143
- question.responses?.filter(
144
- response =>
145
- response && (response.peer?.peerid === peerid || response.peer?.userid === userid) && !response.skipped,
146
- ),
147
- );
148
- };
149
-
150
- export const getIndexToShow = responses => {
151
- let lastAttemptedIndex = 0;
152
-
153
- Object.keys(responses).forEach(key => {
154
- const keyNum = parseInt(key);
155
- if (keyNum > lastAttemptedIndex && responses[key]) {
156
- lastAttemptedIndex = keyNum;
157
- }
158
- });
159
-
160
- return lastAttemptedIndex + 1;
161
- };
162
-
163
- export const getPeerParticipationSummary = (poll, localPeerID, localCustomerUserID) => {
164
- let correctResponses = 0;
165
- let score = 0;
166
- const questions = poll.questions || [];
167
- const peerResponses = getPeerResponses(questions, localPeerID, localCustomerUserID);
168
- let totalResponses = peerResponses.length || 0;
169
-
170
- peerResponses.forEach(peerResponse => {
171
- if (!peerResponse?.[0]) {
172
- return;
173
- }
174
- const isCorrect = checkCorrectAnswer(
175
- questions[peerResponse[0].questionIndex - 1].answer,
176
- peerResponse[0],
177
- questions[peerResponse[0].questionIndex - 1].type,
178
- );
179
- if (isCorrect) {
180
- score += questions[peerResponse[0].questionIndex - 1]?.weight || 0;
181
- correctResponses++;
182
- }
183
- });
184
- return { totalResponses, correctResponses, score };
185
- };