@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,383 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { ConnectivityCheckResult, ConnectivityState, DiagnosticsRTCStats } from '@100mslive/react-sdk';
3
- import { CheckCircleIcon, CrossCircleIcon, EyeCloseIcon, EyeOpenIcon, LinkIcon } from '@100mslive/react-icons';
4
- import { TestContainer, TestFooter } from './components';
5
- import { Button } from '../Button';
6
- import { Box, Flex } from '../Layout';
7
- import { Loading } from '../Loading';
8
- import { formatBytes } from '../Stats';
9
- import { Text } from '../Text';
10
- import { DiagnosticsStep, useDiagnostics } from './DiagnosticsContext';
11
-
12
- const Regions = {
13
- in: 'India',
14
- us: 'United States',
15
- };
16
-
17
- const ConnectivityStateMessage = {
18
- [ConnectivityState.STARTING]: 'Fetching Init',
19
- [ConnectivityState.INIT_FETCHED]: 'Connecting to signal server',
20
- [ConnectivityState.SIGNAL_CONNECTED]: 'Establishing ICE connection',
21
- [ConnectivityState.ICE_ESTABLISHED]: 'Capturing Media',
22
- [ConnectivityState.MEDIA_CAPTURED]: 'Publishing Media',
23
- [ConnectivityState.MEDIA_PUBLISHED]: 'Finishing Up',
24
- [ConnectivityState.COMPLETED]: 'Completed',
25
- };
26
-
27
- export const ConnectivityTestStepResult = ({
28
- title,
29
- status = 'Connected',
30
- success,
31
- children,
32
- }: {
33
- title: string;
34
- status?: string;
35
- success?: boolean;
36
- children: React.ReactNode;
37
- }) => {
38
- const [hideDetails, setHideDetails] = useState(true);
39
-
40
- return (
41
- <Box css={{ my: '$10', p: '$10', r: '$1', bg: '$surface_bright' }}>
42
- <Text css={{ c: '$on_primary_medium', mb: '$6' }}>{title}</Text>
43
- {success ? (
44
- <Flex>
45
- <Text css={{ c: '$alert_success' }}>
46
- <CheckCircleIcon width="1.5rem" height="1.5rem" />
47
- </Text>
48
- <Text variant="lg" css={{ ml: '$4' }}>
49
- {status}
50
- </Text>
51
- </Flex>
52
- ) : (
53
- <Flex>
54
- <Text css={{ c: '$alert_error_bright' }}>
55
- <CrossCircleIcon width="1.5rem" height="1.5rem" />
56
- </Text>
57
- <Text variant="lg" css={{ ml: '$4' }}>
58
- Failed
59
- </Text>
60
- </Flex>
61
- )}
62
- <Flex
63
- onClick={() => setHideDetails(!hideDetails)}
64
- align="center"
65
- gap="2"
66
- css={{
67
- color: '$primary_bright',
68
- }}
69
- >
70
- {hideDetails ? <EyeOpenIcon /> : <EyeCloseIcon />}
71
- <Text
72
- variant="caption"
73
- css={{
74
- color: '$primary_bright',
75
- }}
76
- >
77
- {hideDetails ? 'View' : 'Hide'} detailed information
78
- </Text>
79
- </Flex>
80
- {!hideDetails ? <Box>{children}</Box> : null}
81
- </Box>
82
- );
83
- };
84
-
85
- const DetailedInfo = ({
86
- title,
87
- value,
88
- Icon,
89
- }: {
90
- title: string;
91
- value: string;
92
- Icon?: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
93
- }) => {
94
- return (
95
- <Box css={{ flex: '50%', mt: '$6' }}>
96
- <Text variant="caption" css={{ fontWeight: '$semiBold', c: '$on_primary_medium' }}>
97
- {title}
98
- </Text>
99
- <Flex css={{ mt: '$xs', alignItems: 'flex-start' }}>
100
- {Icon && (
101
- <Text css={{ mr: '$4' }}>
102
- <Icon width="1rem" height="1rem" />
103
- </Text>
104
- )}
105
- <Text variant="caption">{value}</Text>
106
- </Flex>
107
- </Box>
108
- );
109
- };
110
-
111
- const MediaServerResult = ({ result }: { result?: ConnectivityCheckResult['mediaServerReport'] }) => {
112
- return (
113
- <ConnectivityTestStepResult
114
- title="Media server connection test"
115
- success={result?.isPublishICEConnected && result.isSubscribeICEConnected}
116
- >
117
- <Flex css={{ flexWrap: 'wrap' }}>
118
- <DetailedInfo
119
- title="Media Captured"
120
- value={result?.stats?.audio.bytesSent ? 'Yes' : 'No'}
121
- Icon={result?.stats?.audio.bytesSent ? CheckCircleIcon : CrossCircleIcon}
122
- />
123
- <DetailedInfo
124
- title="Media Published"
125
- value={result?.stats?.audio.bitrateSent ? 'Yes' : 'No'}
126
- Icon={result?.stats?.audio.bytesSent ? CheckCircleIcon : CrossCircleIcon}
127
- />
128
- {result?.connectionQualityScore ? (
129
- <DetailedInfo
130
- title="Connection Quality Score (CQS)"
131
- value={`${result.connectionQualityScore.toFixed(2)} (out of 5)`}
132
- />
133
- ) : null}
134
- </Flex>
135
- </ConnectivityTestStepResult>
136
- );
137
- };
138
-
139
- const SignallingResult = ({ result }: { result?: ConnectivityCheckResult['signallingReport'] }) => {
140
- return (
141
- <ConnectivityTestStepResult title="Signalling server connection test" success={result?.isConnected}>
142
- <Flex css={{ flexWrap: 'wrap' }}>
143
- <DetailedInfo
144
- title="Signalling Gateway"
145
- value={result?.isConnected ? 'Reachable' : 'Unreachable'}
146
- Icon={result?.isConnected ? CheckCircleIcon : CrossCircleIcon}
147
- />
148
- <DetailedInfo title="Websocket URL" value={result?.websocketUrl || 'N/A'} Icon={LinkIcon} />
149
- </Flex>
150
- </ConnectivityTestStepResult>
151
- );
152
- };
153
-
154
- const AudioStats = ({ stats }: { stats: DiagnosticsRTCStats | undefined }) => {
155
- return (
156
- <ConnectivityTestStepResult title="Audio" status="Received" success={!!stats?.bytesSent}>
157
- {stats && (
158
- <Flex css={{ flexWrap: 'wrap' }}>
159
- <DetailedInfo title="Bytes Sent" value={formatBytes(stats.bytesSent)} />
160
- <DetailedInfo title="Bytes Received" value={formatBytes(stats.bytesReceived)} />
161
- <DetailedInfo title="Packets Received" value={stats.packetsReceived.toString()} />
162
- <DetailedInfo title="Packets Lost" value={stats.packetsLost.toString()} />
163
- <DetailedInfo title="Bitrate Sent" value={formatBytes(stats.bitrateSent, 'b/s')} />
164
- <DetailedInfo title="Bitrate Received" value={formatBytes(stats.bitrateReceived, 'b/s')} />
165
- <DetailedInfo title="Round Trip Time" value={`${stats.roundTripTime} ms`} />
166
- <DetailedInfo title="Jitter" value={`${stats.jitter * 1000} ms`} />
167
- </Flex>
168
- )}
169
- </ConnectivityTestStepResult>
170
- );
171
- };
172
-
173
- const VideoStats = ({ stats }: { stats: DiagnosticsRTCStats | undefined }) => {
174
- return (
175
- <ConnectivityTestStepResult title="Video" status="Received" success={!!stats?.bytesSent}>
176
- {stats && (
177
- <Flex css={{ flexWrap: 'wrap' }}>
178
- <DetailedInfo title="Bytes Sent" value={formatBytes(stats.bytesSent)} />
179
- <DetailedInfo title="Bytes Received" value={formatBytes(stats.bytesReceived)} />
180
- <DetailedInfo title="Packets Received" value={stats.packetsReceived.toString()} />
181
- <DetailedInfo title="Packets Lost" value={stats.packetsLost.toString()} />
182
- <DetailedInfo title="Bitrate Sent" value={formatBytes(stats.bitrateSent, 'b/s')} />
183
- <DetailedInfo title="Bitrate Received" value={formatBytes(stats.bitrateReceived, 'b/s')} />
184
- <DetailedInfo title="Round Trip Time" value={`${stats.roundTripTime} ms`} />
185
- <DetailedInfo title="Jitter" value={`${stats.jitter * 1000} ms`} />
186
- </Flex>
187
- )}
188
- </ConnectivityTestStepResult>
189
- );
190
- };
191
-
192
- const Footer = ({
193
- error,
194
- result,
195
- restart,
196
- }: {
197
- result?: ConnectivityCheckResult;
198
- restart: () => void;
199
- error?: Error;
200
- }) => {
201
- return (
202
- <TestFooter error={error}>
203
- <Flex css={{ gap: '$8', '@lg': { flexDirection: 'column' } }}>
204
- <Button variant="standard" onClick={restart}>
205
- Restart Test
206
- </Button>
207
- <Button disabled={!result} onClick={() => result && downloadJson(result, 'hms_diagnostics_results')}>
208
- Download Test Report
209
- </Button>
210
- </Flex>
211
- </TestFooter>
212
- );
213
- };
214
-
215
- const ConnectivityTestReport = ({
216
- error,
217
- result,
218
- progress,
219
- startTest,
220
- }: {
221
- error?: Error;
222
- result?: ConnectivityCheckResult;
223
- progress?: ConnectivityState;
224
- startTest: () => void;
225
- }) => {
226
- if (error) {
227
- return (
228
- <>
229
- <TestContainer css={{ textAlign: 'center' }}>
230
- <Text css={{ c: '$alert_error_default', mb: '$4' }}>
231
- <CrossCircleIcon />
232
- </Text>
233
- <Text variant="h6">Connectivity Test Failed</Text>
234
- <Text variant="body2" css={{ c: '$on_primary_medium' }}>
235
- {error.message}
236
- </Text>
237
- </TestContainer>
238
- <Footer restart={startTest} error={error} />
239
- </>
240
- );
241
- }
242
-
243
- if (result) {
244
- // for debugging and quick view of results
245
- console.log(result);
246
- return (
247
- <>
248
- <TestContainer>
249
- <Text css={{ c: '$on_primary_medium' }}>Connectivity test has been completed.</Text>
250
- <SignallingResult result={result?.signallingReport} />
251
- <MediaServerResult result={result?.mediaServerReport} />
252
- <AudioStats stats={result?.mediaServerReport?.stats?.audio} />
253
- <VideoStats stats={result?.mediaServerReport?.stats?.video} />
254
- </TestContainer>
255
- <Footer result={result} restart={startTest} error={error} />
256
- </>
257
- );
258
- }
259
-
260
- if (progress !== undefined) {
261
- return (
262
- <TestContainer css={{ textAlign: 'center' }}>
263
- <Text css={{ c: '$primary_bright', display: 'flex', justifyContent: 'center' }}>
264
- <Loading size="3.5rem" color="currentColor" />
265
- </Text>
266
- <Text variant="h6" css={{ mt: '$8' }}>
267
- Checking your connection...
268
- </Text>
269
- <Text
270
- variant="body2"
271
- css={{ c: '$on_primary_medium', mt: '$4' }}
272
- >{`${ConnectivityStateMessage[progress]}...`}</Text>
273
- </TestContainer>
274
- );
275
- }
276
-
277
- return null;
278
- };
279
-
280
- const RegionSelector = ({
281
- region,
282
- setRegion,
283
- startTest,
284
- }: {
285
- region?: string;
286
- startTest?: () => void;
287
- setRegion: (region: string) => void;
288
- }) => {
289
- return (
290
- <TestContainer css={{ borderBottom: '1px solid $border_default' }}>
291
- <Text variant="body1">Select a region</Text>
292
- <Text variant="body2" css={{ c: '$on_secondary_low' }}>
293
- Select the closest region for best results
294
- </Text>
295
- <Flex
296
- justify="between"
297
- css={{
298
- mt: '$md',
299
- '@lg': {
300
- flexDirection: 'column',
301
- gap: '$8',
302
- },
303
- }}
304
- >
305
- <Flex
306
- css={{
307
- gap: '$4',
308
- '@lg': {
309
- flexDirection: 'column',
310
- },
311
- }}
312
- >
313
- {Object.entries(Regions).map(([key, value]) => (
314
- <Button
315
- key={key}
316
- outlined={region !== key}
317
- variant={region === key ? 'primary' : 'standard'}
318
- css={region === key ? { bg: '$primary_dim' } : {}}
319
- onClick={() => setRegion(key)}
320
- >
321
- {value}
322
- </Button>
323
- ))}
324
- </Flex>
325
- <Flex css={{ '@lg': { flexDirection: 'column' } }}>
326
- <Button variant="primary" onClick={startTest} disabled={!startTest}>
327
- {startTest ? 'Start Test' : 'Testing...'}
328
- </Button>
329
- </Flex>
330
- </Flex>
331
- </TestContainer>
332
- );
333
- };
334
-
335
- export const ConnectivityTest = () => {
336
- const { hmsDiagnostics, updateStep } = useDiagnostics();
337
- const [region, setRegion] = useState<string | undefined>(Object.keys(Regions)[0]);
338
- const [error, setError] = useState<Error | undefined>();
339
- const [progress, setProgress] = useState<ConnectivityState>();
340
- const [result, setResult] = useState<ConnectivityCheckResult | undefined>();
341
-
342
- const startTest = () => {
343
- updateStep(DiagnosticsStep.CONNECTIVITY, { hasFailed: false, isCompleted: false });
344
- setError(undefined);
345
- setResult(undefined);
346
- hmsDiagnostics
347
- ?.startConnectivityCheck(
348
- state => {
349
- setProgress(state);
350
- },
351
- result => {
352
- updateStep(DiagnosticsStep.CONNECTIVITY, { isCompleted: true });
353
- setResult(result);
354
- },
355
- region,
356
- )
357
- .catch(error => {
358
- updateStep(DiagnosticsStep.CONNECTIVITY, { hasFailed: true });
359
- setError(error);
360
- });
361
- };
362
-
363
- return (
364
- <>
365
- <RegionSelector
366
- region={region}
367
- setRegion={setRegion}
368
- startTest={progress === undefined || progress === ConnectivityState.COMPLETED ? startTest : undefined}
369
- />
370
- <ConnectivityTestReport error={error} result={result} progress={progress} startTest={startTest} />
371
- </>
372
- );
373
- };
374
-
375
- const downloadJson = (obj: object, fileName: string) => {
376
- const a = document.createElement('a');
377
- const file = new Blob([JSON.stringify(obj, null, 2)], {
378
- type: 'application/json',
379
- });
380
- a.href = URL.createObjectURL(file);
381
- a.download = `${fileName}.json`;
382
- a.click();
383
- };
@@ -1,71 +0,0 @@
1
- import React, { useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Dropdown } from '../Dropdown';
4
- import { Box, Flex } from '../Layout';
5
- import { DialogDropdownTrigger } from '../Prebuilt/primitives/DropdownTrigger';
6
- import { Text } from '../Text';
7
-
8
- export const DeviceSelector = ({ title, devices, selection, onChange, icon, children = null }) => {
9
- const [open, setOpen] = useState(false);
10
- const ref = useRef(null);
11
- return (
12
- <Box css={{ mb: '$6' }}>
13
- <Text css={{ mb: '$4' }}>{title}</Text>
14
- <Flex
15
- align="center"
16
- css={{
17
- gap: '$4',
18
- '@md': {
19
- flexDirection: children ? 'column' : 'row',
20
- alignItems: children ? 'start' : 'center',
21
- },
22
- }}
23
- >
24
- <Dropdown.Root open={open} onOpenChange={setOpen}>
25
- <DialogDropdownTrigger
26
- ref={ref}
27
- icon={icon}
28
- title={devices.find(({ deviceId }) => deviceId === selection)?.label || 'Select device from list'}
29
- open={open}
30
- />
31
- <Dropdown.Portal>
32
- <Dropdown.Content
33
- align="start"
34
- sideOffset={8}
35
- css={{
36
- w:
37
- // @ts-ignore
38
- ref.current?.clientWidth,
39
- zIndex: 1001,
40
- }}
41
- >
42
- {devices.map(device => {
43
- return (
44
- <Dropdown.Item
45
- key={device.label}
46
- onSelect={() => onChange(device.deviceId)}
47
- css={{
48
- px: '$9',
49
- }}
50
- >
51
- {device.label}
52
- </Dropdown.Item>
53
- );
54
- })}
55
- </Dropdown.Content>
56
- </Dropdown.Portal>
57
- </Dropdown.Root>
58
- {children}
59
- </Flex>
60
- </Box>
61
- );
62
- };
63
-
64
- DeviceSelector.propTypes = {
65
- title: PropTypes.string.isRequired,
66
- devices: PropTypes.array.isRequired,
67
- selection: PropTypes.string,
68
- onChange: PropTypes.func.isRequired,
69
- icon: PropTypes.node,
70
- children: PropTypes.node,
71
- };
@@ -1,190 +0,0 @@
1
- import React, { useCallback, useRef, useState } from 'react';
2
- import { HMSRoomProvider, useHMSActions } from '@100mslive/react-sdk';
3
- import {
4
- CheckCircleIcon,
5
- ConnectivityIcon,
6
- CrossCircleIcon,
7
- GlobeIcon,
8
- MicOnIcon,
9
- VideoOnIcon,
10
- } from '@100mslive/react-icons';
11
- import { Box, Flex } from '../Layout';
12
- import { Text } from '../Text';
13
- import { HMSThemeProvider } from '../Theme';
14
- import { AudioTest } from './AudioTest';
15
- import { BrowserTest } from './BrowserTest';
16
- import { ConnectivityTest } from './ConnectivityTest';
17
- import {
18
- DiagnosticsContext,
19
- DiagnosticsStep,
20
- DiagnosticsStepInfo,
21
- initialSteps,
22
- useDiagnostics,
23
- } from './DiagnosticsContext';
24
- import { VideoTest } from './VideoTest';
25
-
26
- const DiagnosticsStepIcon: Record<DiagnosticsStep, React.ReactNode> = {
27
- [DiagnosticsStep.VIDEO]: <VideoOnIcon width="2rem" height="2rem" />,
28
- [DiagnosticsStep.AUDIO]: <MicOnIcon width="2rem" height="2rem" />,
29
- [DiagnosticsStep.BROWSER]: <GlobeIcon width="2rem" height="2rem" />,
30
- [DiagnosticsStep.CONNECTIVITY]: <ConnectivityIcon width="2rem" height="2rem" />,
31
- };
32
-
33
- const Container = ({ children }: { children: React.ReactNode }) => (
34
- <Box
35
- css={{
36
- px: '120px',
37
- pt: '120px',
38
- pb: '24px',
39
- bg: '$background_dim',
40
- lineHeight: '1.5',
41
- '-webkit-text-size-adjust': '100%',
42
- position: 'relative',
43
- h: '100%',
44
- '@lg': {
45
- p: '$12',
46
- },
47
- overflowY: 'auto',
48
- boxSizing: 'border-box',
49
- '& *': {
50
- boxSizing: 'border-box',
51
- },
52
- '::-webkit-scrollbar-track': {
53
- WebkitBoxShadow: 'inset 0 0 6px rgba(0, 0, 0, 0.3)',
54
- boxShadow: 'inset 0 0 6px rgba(0, 0, 0, 0.3)',
55
- backgroundColor: 'transparent',
56
- },
57
- '::-webkit-scrollbar': {
58
- width: '6px',
59
- height: '6px',
60
- backgroundColor: 'transparent',
61
- },
62
- '::-webkit-scrollbar-thumb': {
63
- backgroundColor: '#657080',
64
- borderRadius: '5px',
65
- },
66
- }}
67
- >
68
- {children}
69
- </Box>
70
- );
71
-
72
- const DiagnosticsStepTest = () => {
73
- const { activeStepIndex } = useDiagnostics();
74
-
75
- let TestComponent = () => <></>;
76
-
77
- if (activeStepIndex === DiagnosticsStep.AUDIO) {
78
- TestComponent = AudioTest;
79
- } else if (activeStepIndex === DiagnosticsStep.VIDEO) {
80
- TestComponent = VideoTest;
81
- } else if (activeStepIndex === DiagnosticsStep.BROWSER) {
82
- TestComponent = BrowserTest;
83
- } else if (activeStepIndex === DiagnosticsStep.CONNECTIVITY) {
84
- TestComponent = ConnectivityTest;
85
- }
86
-
87
- return <TestComponent key={activeStepIndex} />;
88
- };
89
-
90
- const DiagnosticsStepHeader = () => {
91
- const { activeStepIndex, activeStep } = useDiagnostics();
92
- return (
93
- <Flex css={{ py: '$8', px: '$10', alignItems: 'center', borderBottom: '1px solid $border_default' }}>
94
- <Text css={{ c: '$primary_bright', mt: '$xs' }}>{DiagnosticsStepIcon[activeStepIndex]}</Text>
95
- <Text css={{ fontSize: '$h6', ml: '$9' }}>{activeStep.name}</Text>
96
- </Flex>
97
- );
98
- };
99
-
100
- const DiagnosticsStepContainer = () => {
101
- return (
102
- <Box css={{ border: '1px solid $border_default', r: '$1', w: '75%', maxWidth: '65rem', '@lg': { w: '100%' } }}>
103
- <DiagnosticsStepHeader />
104
- <DiagnosticsStepTest />
105
- </Box>
106
- );
107
- };
108
-
109
- const DiagnosticsStepsList = () => {
110
- const { activeStepIndex, activeStep, steps } = useDiagnostics();
111
-
112
- return (
113
- <Box css={{ w: '25%', '@lg': { display: 'none' } }}>
114
- {Object.keys(DiagnosticsStep)
115
- .filter(key => !isNaN(Number(key)))
116
- .map(key => {
117
- const keyIndex = Number(key);
118
- const step = steps[keyIndex as DiagnosticsStep];
119
- const isStepCompleted = activeStepIndex > keyIndex || activeStep.isCompleted;
120
-
121
- let color = '$on_primary_low';
122
- let icon = <Text css={{ c: color, fontSize: '1.75rem' }}>&bull;</Text>;
123
-
124
- if (activeStepIndex === keyIndex) {
125
- color = '$on_primary_high';
126
- icon = <Text css={{ c: color, fontSize: '1.75rem' }}>&bull;</Text>;
127
- }
128
- if (isStepCompleted) {
129
- color = '$primary_bright';
130
- icon = <CheckCircleIcon width="1rem" height="1rem" />;
131
- }
132
- if (step.hasFailed) {
133
- color = '$alert_error_default';
134
- icon = <CrossCircleIcon width="1rem" height="1rem" />;
135
- }
136
-
137
- return (
138
- <Flex key={key} css={{ mb: '$10', c: color, gap: '$4', alignItems: 'center' }}>
139
- {icon}
140
- <Text css={{ c: color }}>{step.name}</Text>
141
- </Flex>
142
- );
143
- })}
144
- </Box>
145
- );
146
- };
147
-
148
- const DiagnosticsProvider = () => {
149
- const actions = useHMSActions();
150
- const [activeStep, setActiveStep] = useState(0);
151
- const [steps, setSteps] = useState(initialSteps);
152
- const diagnosticsRef = useRef(actions.initDiagnostics());
153
-
154
- const updateStep = useCallback((step: DiagnosticsStep, value: Omit<DiagnosticsStepInfo, 'name'>) => {
155
- setSteps(prevSteps => ({ ...prevSteps, [step]: { ...prevSteps[step], ...value } }));
156
- }, []);
157
-
158
- return (
159
- <DiagnosticsContext.Provider
160
- value={{
161
- hmsDiagnostics: diagnosticsRef.current,
162
- activeStepIndex: activeStep,
163
- setActiveStep,
164
- steps,
165
- updateStep,
166
- }}
167
- >
168
- <Container>
169
- <Text variant="h4">Pre-call Test</Text>
170
- <Text variant="md" css={{ c: '$on_primary_medium' }}>
171
- Make sure your devices and network are good to go, let's get started.
172
- </Text>
173
- <Flex css={{ direction: 'column', mt: '$12', justifyItems: 'center' }}>
174
- <DiagnosticsStepsList />
175
- <DiagnosticsStepContainer />
176
- </Flex>
177
- </Container>
178
- </DiagnosticsContext.Provider>
179
- );
180
- };
181
-
182
- export const Diagnostics = () => {
183
- return (
184
- <HMSRoomProvider>
185
- <HMSThemeProvider themeType="default">
186
- <DiagnosticsProvider />
187
- </HMSThemeProvider>
188
- </HMSRoomProvider>
189
- );
190
- };
@@ -1,46 +0,0 @@
1
- import React, { useContext } from 'react';
2
- import { HMSDiagnosticsInterface } from '@100mslive/react-sdk';
3
-
4
- export enum DiagnosticsStep {
5
- BROWSER,
6
- VIDEO,
7
- AUDIO,
8
- CONNECTIVITY,
9
- }
10
-
11
- export const initialSteps = {
12
- [DiagnosticsStep.BROWSER]: { name: 'Browser Support' },
13
- [DiagnosticsStep.VIDEO]: { name: 'Test Video' },
14
- [DiagnosticsStep.AUDIO]: { name: 'Test Audio' },
15
- [DiagnosticsStep.CONNECTIVITY]: { name: 'Connection Quality' },
16
- };
17
-
18
- export interface DiagnosticsStepInfo {
19
- name: string;
20
- hasFailed?: boolean;
21
- isCompleted?: boolean;
22
- }
23
-
24
- export const DiagnosticsContext = React.createContext<{
25
- hmsDiagnostics?: HMSDiagnosticsInterface;
26
- activeStepIndex: DiagnosticsStep;
27
- setActiveStep: React.Dispatch<React.SetStateAction<DiagnosticsStep>>;
28
- steps: Record<DiagnosticsStep, DiagnosticsStepInfo>;
29
- updateStep: (step: DiagnosticsStep, value: Omit<DiagnosticsStepInfo, 'name'>) => void;
30
- }>({
31
- activeStepIndex: 0,
32
- setActiveStep: () => {
33
- return;
34
- },
35
- steps: initialSteps,
36
- updateStep: () => {
37
- return;
38
- },
39
- });
40
-
41
- export const useDiagnostics = () => {
42
- const context = useContext(DiagnosticsContext);
43
- const activeStep = context.steps[context.activeStepIndex];
44
-
45
- return { ...context, activeStep };
46
- };