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