@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,212 +0,0 @@
1
- import { useCallback, useMemo } from 'react';
2
- import {
3
- selectAppData,
4
- selectAppDataByPath,
5
- selectAudioTrackByPeerID,
6
- selectPermissions,
7
- selectPolls,
8
- selectSessionStore,
9
- selectTrackByID,
10
- selectVideoTrackByPeerID,
11
- useHMSActions,
12
- useHMSStore,
13
- useHMSVanillaStore,
14
- } from '@100mslive/react-sdk';
15
- import { UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';
16
- import { APP_DATA, POLL_STATE, SESSION_STORE_KEY, UI_SETTINGS } from '../../common/constants';
17
-
18
- /**
19
- * fields saved related to UI settings in store's app data can be
20
- * accessed using this hook. key is optional if not passed
21
- * the whole UI settings object is returned. Usage -
22
- * 1. val = useUiSettings("isAudioOnly");
23
- * console.log(val); // false
24
- * 2. val = useUISettings();
25
- * console.log(val); // {isAudioOnly: false}
26
- * @param {string | undefined} uiSettingKey
27
- */
28
- export const useUISettings = uiSettingKey => {
29
- const uiSettings = useHMSStore(selectAppDataByPath(APP_DATA.uiSettings, uiSettingKey));
30
- return uiSettings;
31
- };
32
-
33
- /**
34
- * fields saved related to UI settings in store's app data can be
35
- * accessed using this hook. key is optional if not passed
36
- * the whole UI settings object is returned. Usage -
37
- * [val, setVal] = useUiSettings("isAudioOnly");
38
- * console.log(val); // false
39
- * setVal(true);
40
- * @param {string} uiSettingKey
41
- */
42
- export const useSetUiSettings = uiSettingKey => {
43
- const value = useUISettings(uiSettingKey);
44
- const setValue = useSetAppData({
45
- key1: APP_DATA.uiSettings,
46
- key2: uiSettingKey,
47
- });
48
- return [value, setValue];
49
- };
50
-
51
- export const useIsHLSStartedFromUI = () => {
52
- return useHMSStore(selectAppData(APP_DATA.hlsStarted));
53
- };
54
-
55
- export const useIsRTMPStartedFromUI = () => {
56
- return useHMSStore(selectAppData(APP_DATA.rtmpStarted));
57
- };
58
-
59
- export const useAuthToken = () => {
60
- return useHMSStore(selectAppData(APP_DATA.authToken));
61
- };
62
-
63
- export const useUrlToEmbed = () => {
64
- return useHMSStore(selectAppData(APP_DATA.embedConfig))?.url;
65
- };
66
-
67
- export const usePDFConfig = () => {
68
- return useHMSStore(selectAppData(APP_DATA.pdfConfig));
69
- };
70
-
71
- export const useResetPDFConfig = () => {
72
- const [, setPDFConfig] = useSetAppDataByKey(APP_DATA.pdfConfig);
73
- return useCallback(() => setPDFConfig(), [setPDFConfig]);
74
- };
75
-
76
- export const useResetEmbedConfig = () => {
77
- const [, setEmbedConfig] = useSetAppDataByKey(APP_DATA.embedConfig);
78
- return () => setEmbedConfig();
79
- };
80
- export const usePinnedTrack = () => {
81
- const pinnedTrackId = useHMSStore(selectAppData(APP_DATA.pinnedTrackId));
82
- const spotlightPeerId = useHMSStore(selectSessionStore(SESSION_STORE_KEY.SPOTLIGHT));
83
- const spotlightVideoTrackId = useHMSStore(selectVideoTrackByPeerID(spotlightPeerId))?.id;
84
- const spotlightAudioTrackId = useHMSStore(selectAudioTrackByPeerID(spotlightPeerId))?.id;
85
- return useHMSStore(selectTrackByID(pinnedTrackId || spotlightVideoTrackId || spotlightAudioTrackId));
86
- };
87
-
88
- export const useSubscribedNotifications = notificationKey => {
89
- const notificationPreference = useHMSStore(selectAppDataByPath(APP_DATA.subscribedNotifications, notificationKey));
90
- return notificationPreference;
91
- };
92
-
93
- export const useIsNotificationDisabled = () => {
94
- const notificationPreference = useHMSStore(selectAppDataByPath(APP_DATA.disableNotifications));
95
- return notificationPreference;
96
- };
97
-
98
- export const useSetSubscribedNotifications = notificationKey => {
99
- const value = useSubscribedNotifications(notificationKey);
100
- const setValue = useSetAppData({
101
- key1: APP_DATA.subscribedNotifications,
102
- key2: notificationKey,
103
- });
104
- return [value, setValue];
105
- };
106
-
107
- export const useIsCaptionEnabled = () => {
108
- const isCaptionEnabled = useHMSStore(selectAppDataByPath(APP_DATA.caption));
109
- return isCaptionEnabled;
110
- };
111
-
112
- export const useSetIsCaptionEnabled = () => {
113
- const [value, setValue] = useSetAppDataByKey(APP_DATA.caption);
114
- return [value, setValue];
115
- };
116
-
117
- export const useSubscribeChatSelector = chatSelectorKey => {
118
- const chatSelectorPreference = useHMSStore(selectAppDataByPath(APP_DATA.chatSelector, chatSelectorKey));
119
- return chatSelectorPreference;
120
- };
121
-
122
- export const useSetSubscribedChatSelector = chatSelectorKey => {
123
- const value = useSubscribeChatSelector(chatSelectorKey);
124
- const setValue = useSetAppData({
125
- key1: APP_DATA.chatSelector,
126
- key2: chatSelectorKey,
127
- });
128
- return [value, setValue];
129
- };
130
-
131
- export const useSetAppDataByKey = appDataKey => {
132
- const value = useHMSStore(selectAppData(appDataKey));
133
- const actions = useHMSActions();
134
- const setValue = useCallback(
135
- value => {
136
- actions.setAppData(appDataKey, value);
137
- },
138
- [actions, appDataKey],
139
- );
140
- return [value, setValue];
141
- };
142
-
143
- const useSetAppData = ({ key1, key2 }) => {
144
- const actions = useHMSActions();
145
- const store = useHMSVanillaStore();
146
- const [, setPreferences] = useUserPreferences(UserPreferencesKeys.UI_SETTINGS);
147
- const setValue = useCallback(
148
- value => {
149
- if (!key1) {
150
- return;
151
- }
152
- actions.setAppData(
153
- key1,
154
- key2
155
- ? {
156
- [key2]: value,
157
- }
158
- : value,
159
- true,
160
- );
161
- const appData = store.getState(selectAppData());
162
- setPreferences({
163
- ...appData.uiSettings,
164
- [UI_SETTINGS.isAudioOnly]: undefined,
165
- subscribedNotifications: appData.subscribedNotifications,
166
- });
167
- },
168
- [actions, key1, key2, store, setPreferences],
169
- );
170
- return setValue;
171
- };
172
-
173
- export const useShowPolls = () => {
174
- const permissions = useHMSStore(selectPermissions);
175
- const polls = useHMSStore(selectPolls);
176
-
177
- const showPolls = useMemo(() => {
178
- return permissions?.pollWrite || (permissions?.pollRead && polls?.length > 0);
179
- }, [permissions?.pollRead, permissions?.pollWrite, polls?.length]);
180
-
181
- return { showPolls };
182
- };
183
-
184
- export const usePollViewState = () => {
185
- const [pollState, setPollState] = useSetAppDataByKey(APP_DATA.pollState);
186
-
187
- const setPollView = useCallback(
188
- view => {
189
- setPollState({
190
- [POLL_STATE.pollInView]: pollState?.pollInView,
191
- [POLL_STATE.view]: view,
192
- });
193
- },
194
- [pollState?.pollInView, setPollState],
195
- );
196
-
197
- return {
198
- setPollState,
199
- setPollView,
200
- pollInView: pollState?.pollInView,
201
- view: pollState?.view,
202
- };
203
- };
204
-
205
- export const useIsNoiseCancellationEnabled = () => {
206
- const isNoiseCancellationEnabled = useHMSStore(selectAppDataByPath(APP_DATA.noiseCancellation));
207
- return isNoiseCancellationEnabled;
208
- };
209
- export const useSetNoiseCancellation = () => {
210
- const [isNoiseCancellationEnabled, setNoiseCancellationEnabled] = useSetAppDataByKey(APP_DATA.noiseCancellation);
211
- return [isNoiseCancellationEnabled, setNoiseCancellationEnabled];
212
- };
@@ -1,411 +0,0 @@
1
- import React, { Fragment, useCallback, useEffect, useState } from 'react';
2
- import { HMSKrispPlugin } from '@100mslive/hms-noise-cancellation';
3
- import {
4
- DeviceType,
5
- HMSRoomState,
6
- selectIsLocalAudioPluginPresent,
7
- selectLocalAudioTrackID,
8
- selectLocalPeer,
9
- selectLocalVideoTrackID,
10
- selectRoom,
11
- selectRoomState,
12
- selectVideoTrackByID,
13
- useAVToggle,
14
- useDevices,
15
- useHMSActions,
16
- useHMSStore,
17
- useHMSVanillaStore,
18
- } from '@100mslive/react-sdk';
19
- import {
20
- AudioLevelIcon,
21
- CameraFlipIcon,
22
- CheckIcon,
23
- MicOffIcon,
24
- MicOnIcon,
25
- SettingsIcon,
26
- SpeakerIcon,
27
- VideoOffIcon,
28
- VideoOnIcon,
29
- } from '@100mslive/react-icons';
30
- import { IconButtonWithOptions } from './IconButtonWithOptions/IconButtonWithOptions';
31
- // @ts-ignore: No implicit Any
32
- import { ActionTile } from './MoreSettings/ActionTile';
33
- // @ts-ignore: No implicit Any
34
- import SettingsModal from './Settings/SettingsModal';
35
- // @ts-ignore: No implicit Any
36
- import { ToastManager } from './Toast/ToastManager';
37
- import { AudioLevel } from '../../AudioLevel';
38
- import { Dropdown } from '../../Dropdown';
39
- import { Box, Flex } from '../../Layout';
40
- import { Switch } from '../../Switch';
41
- import { Text } from '../../Text';
42
- import { Tooltip } from '../../Tooltip';
43
- import IconButton from '../IconButton';
44
- import { useRoomLayoutConferencingScreen } from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
45
- // @ts-ignore: No implicit Any
46
- import { useIsNoiseCancellationEnabled, useSetNoiseCancellation } from './AppData/useUISettings';
47
- import { useAudioOutputTest } from './hooks/useAudioOutputTest';
48
- import { isAndroid, isIOS, isMacOS, TEST_AUDIO_URL } from '../common/constants';
49
-
50
- const krispPlugin = new HMSKrispPlugin();
51
- // const optionsCSS = { fontWeight: '$semiBold', color: '$on_surface_high', w: '100%' };
52
-
53
- export const Options = ({
54
- options,
55
- selectedDeviceId,
56
- onClick,
57
- }: {
58
- options?: Array<MediaDeviceInfo | InputDeviceInfo>;
59
- selectedDeviceId?: string;
60
- onClick: (deviceId: string) => Promise<void>;
61
- }) => {
62
- return (
63
- <>
64
- {options?.map(option => (
65
- <Dropdown.Item
66
- key={option.label}
67
- css={{
68
- backgroundColor: '$surface_dim',
69
- p: '$4 $8',
70
- h: '$15',
71
- fontSize: '$xs',
72
- justifyContent: 'space-between',
73
- color: selectedDeviceId === option.deviceId ? '$primary_bright' : '',
74
- }}
75
- onClick={() => {
76
- onClick(option.deviceId);
77
- }}
78
- >
79
- {option.label}
80
- {selectedDeviceId === option.deviceId ? <CheckIcon width={16} height={16} /> : null}
81
- </Dropdown.Item>
82
- ))}
83
- </>
84
- );
85
- };
86
-
87
- const OptionLabel = ({ children, icon }: { children: React.ReactNode; icon: React.ReactNode }) => {
88
- return (
89
- <Dropdown.Label
90
- css={{
91
- h: '$16',
92
- p: '$4 $8',
93
- color: '$on_surface_medium',
94
- bg: 'transparent',
95
- fontSize: '$xs',
96
- gap: '$4',
97
- alignItems: 'center',
98
- }}
99
- >
100
- <Flex css={{ alignItems: 'center', justifyContent: 'center', '& svg': { size: '$8' } }}>{icon}</Flex> {children}
101
- </Dropdown.Label>
102
- );
103
- };
104
-
105
- const useNoiseCancellationWithPlugin = () => {
106
- const actions = useHMSActions();
107
- const [inProgress, setInProgress] = useState(false);
108
- const [, setNoiseCancellationEnabled] = useSetNoiseCancellation();
109
- const isEnabledForRoom = useHMSStore(selectRoom)?.isNoiseCancellationEnabled;
110
- const setNoiseCancellationWithPlugin = useCallback(
111
- async (enabled: boolean) => {
112
- if (!isEnabledForRoom || inProgress) {
113
- return;
114
- }
115
- if (!krispPlugin.checkSupport().isSupported) {
116
- throw Error('Krisp plugin is not supported');
117
- }
118
- setInProgress(true);
119
- if (enabled) {
120
- await actions.addPluginToAudioTrack(krispPlugin);
121
- } else {
122
- await actions.removePluginFromAudioTrack(krispPlugin);
123
- }
124
- setNoiseCancellationEnabled(enabled);
125
- setInProgress(false);
126
- },
127
- [actions, inProgress, isEnabledForRoom, setNoiseCancellationEnabled],
128
- );
129
- return {
130
- setNoiseCancellationWithPlugin,
131
- inProgress,
132
- };
133
- };
134
-
135
- export const NoiseCancellation = ({
136
- actionTile,
137
- iconOnly,
138
- setOpenOptionsSheet,
139
- }: {
140
- setOpenOptionsSheet?: (value: boolean) => void;
141
- iconOnly?: boolean;
142
- actionTile?: boolean;
143
- }) => {
144
- const localPeerAudioTrackID = useHMSStore(selectLocalAudioTrackID);
145
- const isNoiseCancellationEnabled = useIsNoiseCancellationEnabled();
146
- const { setNoiseCancellationWithPlugin, inProgress } = useNoiseCancellationWithPlugin();
147
- const room = useHMSStore(selectRoom);
148
- const isKrispPluginAdded = useHMSStore(selectIsLocalAudioPluginPresent(krispPlugin.getName()));
149
-
150
- if (!krispPlugin.isSupported() || !room.isNoiseCancellationEnabled || !localPeerAudioTrackID) {
151
- return null;
152
- }
153
-
154
- if (actionTile) {
155
- return (
156
- <ActionTile.Root
157
- active={isNoiseCancellationEnabled && isKrispPluginAdded}
158
- disabled={inProgress}
159
- onClick={async () => {
160
- await setNoiseCancellationWithPlugin(!isNoiseCancellationEnabled);
161
- setOpenOptionsSheet?.(false);
162
- }}
163
- >
164
- <AudioLevelIcon />
165
- <ActionTile.Title>{isNoiseCancellationEnabled ? 'Noise Reduced' : 'Reduce Noise'}</ActionTile.Title>
166
- </ActionTile.Root>
167
- );
168
- }
169
-
170
- if (iconOnly) {
171
- return (
172
- <Tooltip title={isNoiseCancellationEnabled ? 'Noise Reduced' : 'Reduce Noise'}>
173
- <IconButton
174
- onClick={async () => {
175
- await setNoiseCancellationWithPlugin(!isNoiseCancellationEnabled);
176
- }}
177
- disabled={inProgress}
178
- css={{
179
- bg: isNoiseCancellationEnabled && isKrispPluginAdded ? '$surface_brighter' : '$background_dim',
180
- borderColor: isNoiseCancellationEnabled && isKrispPluginAdded ? '$border_brighter' : '$border_bright',
181
- }}
182
- >
183
- <AudioLevelIcon />
184
- </IconButton>
185
- </Tooltip>
186
- );
187
- }
188
- return (
189
- <>
190
- <Dropdown.ItemSeparator css={{ mx: 0 }} />
191
- <Dropdown.Item
192
- css={{
193
- p: '$4 $8',
194
- h: '$15',
195
- fontSize: '$xs',
196
- justifyContent: 'space-between',
197
- }}
198
- onClick={async e => {
199
- e.preventDefault();
200
- await setNoiseCancellationWithPlugin(!isNoiseCancellationEnabled);
201
- }}
202
- >
203
- <Text css={{ display: 'flex', alignItems: 'center', gap: '$2', fontSize: '$xs', '& svg': { size: '$8' } }}>
204
- <AudioLevelIcon />
205
- Reduce Noise
206
- </Text>
207
- <Switch
208
- id="noise_cancellation"
209
- checked={isNoiseCancellationEnabled && isKrispPluginAdded}
210
- disabled={inProgress}
211
- onClick={e => e.stopPropagation()}
212
- onCheckedChange={async value => {
213
- await setNoiseCancellationWithPlugin(value);
214
- }}
215
- />
216
- </Dropdown.Item>
217
- <Dropdown.ItemSeparator css={{ mx: 0 }} />
218
- </>
219
- );
220
- };
221
-
222
- const AudioOutputLabel = ({ deviceId }: { deviceId: string }) => {
223
- const { playing, setPlaying, audioRef } = useAudioOutputTest({ deviceId });
224
- return (
225
- <OptionLabel icon={<SpeakerIcon />}>
226
- <Box css={{ flex: '1 1 0' }}>Speakers</Box>
227
- <Text
228
- variant="xs"
229
- css={{ color: '$primary_bright', '&:hover': { cursor: 'pointer' } }}
230
- onClick={async () => {
231
- if (playing) {
232
- return;
233
- }
234
- await audioRef.current?.play();
235
- }}
236
- >
237
- <audio
238
- ref={audioRef}
239
- src={TEST_AUDIO_URL}
240
- onEnded={() => setPlaying(false)}
241
- onPlay={() => setPlaying(true)}
242
- style={{ display: 'none' }}
243
- />
244
- {playing ? 'Playing Sound...' : 'Play Test Sound'}
245
- </Text>
246
- </OptionLabel>
247
- );
248
- };
249
-
250
- const AudioSettings = ({ onClick }: { onClick: () => void }) => {
251
- return (
252
- <>
253
- <Dropdown.Item
254
- css={{
255
- backgroundColor: '$surface_dim',
256
- p: '$4 $8',
257
- h: '$15',
258
- alignItems: 'center',
259
- gap: '$2',
260
- fontSize: '$xs',
261
- '& svg': { size: '$8' },
262
- }}
263
- onClick={onClick}
264
- >
265
- <SettingsIcon /> Audio Settings
266
- </Dropdown.Item>
267
- </>
268
- );
269
- };
270
- export const AudioVideoToggle = ({ hideOptions = false }: { hideOptions?: boolean }) => {
271
- const { allDevices, selectedDeviceIDs, updateDevice } = useDevices(error => {
272
- ToastManager.addToast({
273
- title: error.message,
274
- variant: 'error',
275
- duration: 2000,
276
- });
277
- });
278
- const { videoInput, audioInput, audioOutput } = allDevices;
279
- const localPeer = useHMSStore(selectLocalPeer);
280
- const { isLocalVideoEnabled, isLocalAudioEnabled, toggleAudio, toggleVideo } = useAVToggle();
281
- const actions = useHMSActions();
282
- const vanillaStore = useHMSVanillaStore();
283
- const videoTrackId = useHMSStore(selectLocalVideoTrackID);
284
- const localVideoTrack = useHMSStore(selectVideoTrackByID(videoTrackId));
285
- const roomState = useHMSStore(selectRoomState);
286
- const hasAudioDevices = Number(audioInput?.length) > 0;
287
- const hasVideoDevices = Number(videoInput?.length) > 0;
288
- const shouldShowAudioOutput = 'setSinkId' in HTMLMediaElement.prototype && Number(audioOutput?.length) > 0;
289
- const { screenType } = useRoomLayoutConferencingScreen();
290
- const [showSettings, setShowSettings] = useState(false);
291
- const isKrispPluginAdded = useHMSStore(selectIsLocalAudioPluginPresent(krispPlugin.getName()));
292
- const isNoiseCancellationEnabled = useIsNoiseCancellationEnabled();
293
- const { setNoiseCancellationWithPlugin, inProgress } = useNoiseCancellationWithPlugin();
294
- const showMuteIcon = !isLocalAudioEnabled || !toggleAudio;
295
-
296
- useEffect(() => {
297
- (async () => {
298
- const isEnabledForRoom = vanillaStore.getState(selectRoom)?.isNoiseCancellationEnabled;
299
- if (
300
- isEnabledForRoom &&
301
- isNoiseCancellationEnabled &&
302
- !isKrispPluginAdded &&
303
- !inProgress &&
304
- localPeer?.audioTrack
305
- ) {
306
- try {
307
- await setNoiseCancellationWithPlugin(true);
308
- ToastManager.addToast({
309
- title: `Noise Reduction Enabled`,
310
- variant: 'standard',
311
- duration: 2000,
312
- icon: <AudioLevelIcon />,
313
- });
314
- } catch (error) {
315
- console.error(error);
316
- }
317
- }
318
- })();
319
- // eslint-disable-next-line react-hooks/exhaustive-deps
320
- }, [isNoiseCancellationEnabled, localPeer?.audioTrack, inProgress]);
321
-
322
- if (!toggleAudio && !toggleVideo) {
323
- return null;
324
- }
325
- return (
326
- <Fragment>
327
- {toggleAudio ? (
328
- <IconButtonWithOptions
329
- disabled={!toggleAudio}
330
- hideOptions={hideOptions || !hasAudioDevices}
331
- onDisabledClick={toggleAudio}
332
- testid="audio_toggle_btn"
333
- tooltipMessage={`Turn ${isLocalAudioEnabled ? 'off' : 'on'} audio (${isMacOS ? '⌘' : 'ctrl'} + d)`}
334
- icon={!isLocalAudioEnabled ? <MicOffIcon /> : <MicOnIcon />}
335
- active={isLocalAudioEnabled}
336
- onClick={toggleAudio}
337
- key="toggleAudio"
338
- >
339
- <Dropdown.Group>
340
- <OptionLabel icon={<MicOnIcon />}>
341
- <Box css={{ flex: '1 1 0' }}>{!shouldShowAudioOutput ? 'Audio' : 'Microphone'}</Box>
342
- {!showMuteIcon && <AudioLevel trackId={localPeer?.audioTrack} />}
343
- </OptionLabel>
344
- <Options
345
- options={audioInput}
346
- selectedDeviceId={selectedDeviceIDs.audioInput}
347
- onClick={deviceId => updateDevice({ deviceId, deviceType: DeviceType.audioInput })}
348
- />
349
- </Dropdown.Group>
350
- <Dropdown.ItemSeparator css={{ mx: 0 }} />
351
- {shouldShowAudioOutput && (
352
- <>
353
- <AudioOutputLabel deviceId={selectedDeviceIDs.audioOutput || ''} />
354
- <Dropdown.Group>
355
- <Options
356
- options={audioOutput}
357
- selectedDeviceId={selectedDeviceIDs.audioOutput}
358
- onClick={deviceId => updateDevice({ deviceId, deviceType: DeviceType.audioOutput })}
359
- />
360
- </Dropdown.Group>
361
- </>
362
- )}
363
- <NoiseCancellation />
364
- <AudioSettings onClick={() => setShowSettings(true)} />
365
- </IconButtonWithOptions>
366
- ) : null}
367
-
368
- {toggleVideo ? (
369
- <IconButtonWithOptions
370
- disabled={!toggleVideo}
371
- hideOptions={hideOptions || !hasVideoDevices}
372
- onDisabledClick={toggleVideo}
373
- tooltipMessage={`Turn ${isLocalVideoEnabled ? 'off' : 'on'} video (${isMacOS ? '⌘' : 'ctrl'} + e)`}
374
- testid="video_toggle_btn"
375
- icon={!isLocalVideoEnabled ? <VideoOffIcon /> : <VideoOnIcon />}
376
- key="toggleVideo"
377
- active={isLocalVideoEnabled}
378
- onClick={toggleVideo}
379
- >
380
- <Options
381
- options={videoInput}
382
- selectedDeviceId={selectedDeviceIDs.videoInput}
383
- onClick={deviceId => updateDevice({ deviceId, deviceType: DeviceType.videoInput })}
384
- />
385
- </IconButtonWithOptions>
386
- ) : null}
387
-
388
- {localVideoTrack?.facingMode && roomState === HMSRoomState.Preview && (isIOS || isAndroid) ? (
389
- <Tooltip title="Switch Camera" key="switchCamera">
390
- <IconButton
391
- onClick={async () => {
392
- try {
393
- await actions.switchCamera();
394
- } catch (e) {
395
- ToastManager.addToast({
396
- title: `Error while flipping camera ${(e as Error).message || ''}`,
397
- variant: 'error',
398
- });
399
- }
400
- }}
401
- >
402
- <CameraFlipIcon />
403
- </IconButton>
404
- </Tooltip>
405
- ) : null}
406
- {showSettings && (
407
- <SettingsModal open={showSettings} onOpenChange={() => setShowSettings(false)} screenType={screenType} />
408
- )}
409
- </Fragment>
410
- );
411
- };