@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,335 +0,0 @@
1
- import * as workerTimers from 'worker-timers';
2
- import { HMSActions, HMSPeer, HMSTrack, HMSVideoTrack } from '@100mslive/react-sdk';
3
- // @ts-ignore: No implicit any
4
- import { drawVideoElementsOnCanvas, dummyChangeInCanvas, resetPIPCanvasColors } from './pipUtils';
5
- import { isIOS, isMacOS, isSafari } from '../../common/constants';
6
- const MAX_NUMBER_OF_TILES_IN_PIP = 4;
7
- const DEFAULT_FPS = 30;
8
- const DEFAULT_CANVAS_WIDTH = 480;
9
- const DEFAULT_CANVAS_HEIGHT = 320;
10
- const LEAVE_EVENT_NAME = 'leavepictureinpicture';
11
-
12
- enum PIPStates {
13
- starting = 'starting',
14
- started = 'started',
15
- stopping = 'stopping',
16
- stopped = 'stopped',
17
- }
18
-
19
- /**
20
- * video elements are stitched together as a canvas which is converted to
21
- * another video element converted to PIP.
22
- * The task is split into two parts -
23
- * 1. a function which gets hit when the input changes and updates the tracks
24
- * to show
25
- * 2. an independent loop which updates the canvas periodically based on the current
26
- * tracks which should be shown.
27
- */
28
- class PipManager {
29
- private listeners = new Set<(value: boolean) => void>();
30
- private canvas: HTMLCanvasElement | null = null;
31
- private pipVideo: HTMLVideoElement | null = null;
32
- private hmsActions: HMSActions | null = null;
33
- private timeoutRef = 0;
34
- private videoElements: HTMLVideoElement[] = [];
35
- private onStateChange: ((value: boolean) => void) | null = null;
36
- private tracksToShow: Array<string> = [];
37
- private state: PIPStates = PIPStates.stopped;
38
-
39
- constructor() {
40
- this.reset();
41
- }
42
-
43
- listenToStateChange(cb: (value: boolean) => void) {
44
- this.listeners.add(cb);
45
- }
46
-
47
- /**
48
- * @private
49
- */
50
- reset() {
51
- console.debug('resetting PIP state');
52
- resetPIPCanvasColors();
53
- this.canvas = null; // where stitching will take place
54
- this.pipVideo = null; // the element which will be sent in PIP
55
- this.timeoutRef = 0; // setTimeout reference so it can be cancelled
56
- this.hmsActions = null; // for attaching detaching
57
- this.videoElements = []; // for attaching tracks
58
- this.tracksToShow = [];
59
- this.onStateChange = null; // for user of this class to listen to changes
60
- this.state = PIPStates.stopped;
61
- }
62
-
63
- /**
64
- * check if PIP is supported in this browser env
65
- */
66
- isSupported() {
67
- return !!document.pictureInPictureEnabled && !isIOS && !(isMacOS && isSafari);
68
- }
69
-
70
- /**
71
- * check if pip is currently turned on
72
- */
73
- isOn() {
74
- return !!document.pictureInPictureElement;
75
- }
76
-
77
- /**
78
- * request browser to start pip and start the render loop updating the pip
79
- * video element with peer tracks.
80
- * @param hmsActions
81
- * @param onStateChangeFn {function(bool):void} callback called to notify change in pip state
82
- */
83
- async start(hmsActions: HMSActions, onStateChangeFn: (value: boolean) => void): Promise<void> {
84
- if (!this.isSupported()) {
85
- throw new Error('pip is not supported on this browser');
86
- }
87
- console.debug('starting PIP, current state', this.state);
88
- if (this.state === PIPStates.started) {
89
- await this.stop(); // if anything is already running
90
- } else if (this.state === PIPStates.starting) {
91
- return; // ignore double clicks
92
- }
93
- this.state = PIPStates.starting;
94
- try {
95
- await this.init(hmsActions, onStateChangeFn);
96
- // when user closes pip, call internal stop
97
- this.pipVideo?.addEventListener(LEAVE_EVENT_NAME, this.stop);
98
- this.renderLoop();
99
- if (!this.isOn()) {
100
- await this.requestPIP();
101
- }
102
- console.debug('pip started');
103
- this.state = PIPStates.started;
104
- this.onStateChange?.(true);
105
- this.callListeners(true);
106
- } catch (err) {
107
- console.error('error in request pip', err);
108
- this.state = PIPStates.stopped;
109
- }
110
- }
111
-
112
- stop = async () => {
113
- if (this.state === PIPStates.stopped) {
114
- return;
115
- }
116
- this.state = PIPStates.stopping;
117
- this.pipVideo?.removeEventListener(LEAVE_EVENT_NAME, this.stop);
118
- if (this.timeoutRef) {
119
- workerTimers.clearTimeout(this.timeoutRef);
120
- this.timeoutRef = 0;
121
- }
122
- if (this.isOn()) {
123
- this.exitPIP();
124
- }
125
- // detach all to avoid bandwidth consumption
126
- await this.detachOldAttachNewTracks(this.tracksToShow, []);
127
- this.onStateChange?.(false); // notify parent about this
128
- this.callListeners(false);
129
- this.reset(); // cleanup
130
- this.state = PIPStates.stopped;
131
- };
132
-
133
- /**
134
- * @param peers {Array} All Remote Peers present in call.
135
- * @param tracksMap {Object} map of track id to track
136
- * */
137
- async updatePeersAndTracks(peers: HMSPeer[], tracksMap: Record<string, HMSTrack>) {
138
- if (!this.canvas) {
139
- console.log('no canvas to render video to');
140
- return;
141
- }
142
- const newTracksToShowUnordered = this.pickTracksToShow(peers, tracksMap);
143
- const currentTracksShowing = this.tracksToShow;
144
- this.tracksToShow = this.orderNewTracksToShow(newTracksToShowUnordered, currentTracksShowing);
145
- try {
146
- await this.detachOldAttachNewTracks(currentTracksShowing, this.tracksToShow, tracksMap);
147
- } catch (error) {
148
- console.error('error in detaching/attaching tracks', error);
149
- }
150
- }
151
-
152
- // ------- Private function --------------
153
- /**
154
- * @private {boolean} on - whether pip is on/off
155
- */
156
- callListeners = (on: boolean) => {
157
- this.listeners.forEach(listener => listener?.(on));
158
- };
159
-
160
- /**
161
- * @private
162
- */
163
- async init(hmsActions: HMSActions, onStateChangeFn: (value: boolean) => void) {
164
- await this.initMediaElements();
165
- this.hmsActions = hmsActions;
166
- this.onStateChange = onStateChangeFn;
167
- }
168
-
169
- async initMediaElements() {
170
- if (!this.canvas) {
171
- const { canvas, pipVideo } = this.initializeCanvasAndVideoElement();
172
- this.canvas = canvas; // where stitching will take place
173
- this.pipVideo = pipVideo; // the element which will be sent in PIP
174
- this.videoElements = this.initializeVideoElements(); // for attaching tracks
175
- const videoPlayPromise = this.pipVideo.play();
176
- dummyChangeInCanvas(this.canvas);
177
- await videoPlayPromise;
178
- }
179
- }
180
-
181
- initializeCanvasAndVideoElement() {
182
- const canvas = document.createElement('canvas');
183
- canvas.width = DEFAULT_CANVAS_WIDTH;
184
- canvas.height = DEFAULT_CANVAS_HEIGHT;
185
- const pipVideo = document.createElement('video');
186
- pipVideo.width = DEFAULT_CANVAS_WIDTH;
187
- pipVideo.height = DEFAULT_CANVAS_HEIGHT;
188
- pipVideo.muted = true;
189
- pipVideo.srcObject = canvas.captureStream();
190
- return { canvas, pipVideo };
191
- }
192
-
193
- initializeVideoElements() {
194
- const videoElements = [];
195
- for (let i = 0; i < MAX_NUMBER_OF_TILES_IN_PIP; i++) {
196
- const videoElement = document.createElement('video');
197
- videoElement.autoplay = true;
198
- videoElement.playsInline = true;
199
- videoElements.push(videoElement);
200
- }
201
- return videoElements;
202
- }
203
-
204
- /**
205
- * render loop is responsible for rendering the video elements on canvas/pip.
206
- * in each loop current video elements are stitched and painted on canvas
207
- */
208
- renderLoop() {
209
- const delay = 1000 / DEFAULT_FPS;
210
- this.timeoutRef = workerTimers.setTimeout(() => {
211
- if (this.state === PIPStates.stopping || this.state === PIPStates.stopped) {
212
- return;
213
- }
214
- if (this.state === PIPStates.started) {
215
- drawVideoElementsOnCanvas(this.videoElements, this.canvas);
216
- }
217
- this.renderLoop();
218
- }, delay);
219
- }
220
-
221
- async requestPIP() {
222
- try {
223
- if (this.isOn()) {
224
- this.exitPIP(); // is this really needed?
225
- }
226
- if (!this.pipVideo) {
227
- return;
228
- }
229
- await this.pipVideo.requestPictureInPicture();
230
- } catch (error) {
231
- console.error('error in requestpip', error, 'state', this.state);
232
- throw error;
233
- }
234
- }
235
-
236
- exitPIP() {
237
- document.exitPictureInPicture();
238
- }
239
-
240
- /**
241
- * Logic - pick only enabled video tracks
242
- * @param peers {Array<any>}
243
- * @param tracksMap {Record<string, any>}
244
- */
245
- pickTracksToShow(peers: HMSPeer[], tracksMap: Record<string, HMSTrack>) {
246
- const tracksToShow = new Set<string>();
247
- for (const peer of peers) {
248
- if (tracksToShow.size === MAX_NUMBER_OF_TILES_IN_PIP) {
249
- break;
250
- } else if (peer.videoTrack && this.showTrack(tracksMap[peer.videoTrack] as HMSVideoTrack)) {
251
- tracksToShow.add(peer.videoTrack);
252
- }
253
- }
254
- return Array.from(tracksToShow);
255
- }
256
-
257
- /**
258
- * there has to be a smart reordering of new tracks based on currently showing
259
- * ones to reduce unnecessary displacement. If someone was showing up both
260
- * earlier and now, it's a better UX to keep their position same instead
261
- * of letting it change.
262
- * The returned array is a shuffled version of newTracks with position of
263
- * tracks present in the old tracks intact.
264
- * eg. old = [1,5,9,3], new = [3,8,2,9], result = [8,2,9,3]
265
- * @param oldTracks {Array}
266
- * @param newTracks {Array}
267
- * @return {Array}
268
- */
269
- orderNewTracksToShow(newTracks: string[], oldTracks: string[]) {
270
- const betterNewTracks: Array<string> = new Array(newTracks.length);
271
- const leftOvers: Array<string> = [];
272
- // put the common ones in right position
273
- newTracks.forEach(track => {
274
- const oldPosition = oldTracks.indexOf(track);
275
- if (oldPosition !== -1 && oldPosition < newTracks.length) {
276
- // if track is there currently and we can put it on the same position
277
- betterNewTracks[oldPosition] = track;
278
- } else {
279
- leftOvers.push(track);
280
- }
281
- });
282
- // put the left overs in remaining empty positions
283
- for (let i = 0; i < newTracks.length; i++) {
284
- if (!betterNewTracks[i]) {
285
- const newEntry = leftOvers.shift();
286
- if (newEntry) {
287
- betterNewTracks[i] = newEntry;
288
- }
289
- }
290
- }
291
- return Array.from(new Set(betterNewTracks));
292
- }
293
-
294
- private showTrack(track: HMSVideoTrack | undefined) {
295
- return track && track.enabled && !track.degraded;
296
- }
297
-
298
- /**
299
- * call detach for tracks which no longer need to be shown and attach for
300
- * new ones which are to be shown now.
301
- * Note: oldTracks and newTracks are not necessarily of same length
302
- * @param oldTracks {Array<String>}
303
- * @param newTracks {Array<String>}
304
- * @param tracksMap {Record<String, any>}
305
- */
306
- // eslint-disable-next-line complexity
307
- async detachOldAttachNewTracks(
308
- oldTracks: Array<string>,
309
- newTracks: Array<string>,
310
- tracksMap: Record<string, HMSTrack> | null = null,
311
- ) {
312
- const numTracks = Math.max(oldTracks.length, newTracks.length);
313
- for (let i = 0; i < numTracks; i++) {
314
- if (oldTracks[i] === newTracks[i]) {
315
- continue; // it would already have been attached previously
316
- } else if (oldTracks[i]) {
317
- // old track is there but not equal to new track, detach
318
- // no need to call detach if we know for sure track is no longer in store
319
- if (!tracksMap || tracksMap[oldTracks[i]]) {
320
- await this.hmsActions?.detachVideo(oldTracks[i], this.videoElements[i]);
321
- }
322
- if (this.videoElements[i]) {
323
- // even if old track got removed from the room, element needs to be cleaned up
324
- this.videoElements[i].srcObject = null;
325
- }
326
- }
327
- if (newTracks[i]) {
328
- await this.hmsActions?.attachVideo(newTracks[i], this.videoElements[i]);
329
- }
330
- }
331
- }
332
- }
333
-
334
- export const PictureInPicture = new PipManager();
335
- // PictureInPicture.initMediaElements().catch(console.error); // for safari, init early
@@ -1,56 +0,0 @@
1
- import React, { useCallback, useMemo, useState } from 'react';
2
- import { PIPContext } from './context';
3
-
4
- type PIPProviderProps = {
5
- children: React.ReactNode;
6
- };
7
-
8
- export const PIPProvider = ({ children }: PIPProviderProps) => {
9
- // Detect if the feature is available.
10
- const isSupported = 'documentPictureInPicture' in window;
11
-
12
- // Expose pipWindow that is currently active
13
- const [pipWindow, setPipWindow] = useState<Window | null>(null);
14
-
15
- // Close pipWidnow programmatically
16
- const closePipWindow = useCallback(() => {
17
- if (pipWindow != null) {
18
- pipWindow.close();
19
- setPipWindow(null);
20
- }
21
- }, [pipWindow]);
22
-
23
- // Open new pipWindow
24
- const requestPipWindow = useCallback(
25
- async (width: number, height: number) => {
26
- // We don't want to allow multiple requests.
27
- if (pipWindow != null) {
28
- return;
29
- }
30
- // @ts-ignore for documentPIP
31
- const pip = await window.documentPictureInPicture.requestWindow({
32
- width,
33
- height,
34
- });
35
-
36
- // Detect when window is closed by user
37
- pip.addEventListener('pagehide', () => {
38
- setPipWindow(null);
39
- });
40
-
41
- setPipWindow(pip);
42
- },
43
- [pipWindow],
44
- );
45
-
46
- const value = useMemo(() => {
47
- return {
48
- isSupported,
49
- pipWindow,
50
- requestPipWindow,
51
- closePipWindow,
52
- };
53
- }, [closePipWindow, isSupported, pipWindow, requestPipWindow]);
54
-
55
- return <PIPContext.Provider value={value}>{children}</PIPContext.Provider>;
56
- };
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { createPortal } from 'react-dom';
3
-
4
- type PIPWindowProps = {
5
- pipWindow: Window;
6
- children: React.ReactNode;
7
- };
8
-
9
- export const PIPWindow = ({ pipWindow, children }: PIPWindowProps) => {
10
- pipWindow.document.body.style.margin = '0';
11
- pipWindow.document.body.style.overflow = 'clip';
12
- return createPortal(children, pipWindow.document.body);
13
- };
@@ -1,60 +0,0 @@
1
- import { selectIsLocalAudioEnabled, selectIsLocalVideoEnabled } from '@100mslive/react-sdk';
2
-
3
- /**
4
- * Media Session API allows for handling control actions on top of pip
5
- * https://web.dev/media-session/#video-conferencing-actions
6
- */
7
- class SetupMediaSession {
8
- setup = (actions, store) => {
9
- this.actions = actions;
10
- this.store = store;
11
- this.initState();
12
- this.setUpHandlers();
13
- };
14
-
15
- initState = () => {
16
- const isMicActive = this.store.getState(selectIsLocalAudioEnabled);
17
- const isCamActive = this.store.getState(selectIsLocalVideoEnabled);
18
- navigator.mediaSession?.setMicrophoneActive?.(isMicActive);
19
- navigator.mediaSession?.setCameraActive?.(isCamActive);
20
-
21
- this.store.subscribe(isMicActive => {
22
- navigator.mediaSession?.setMicrophoneActive?.(isMicActive);
23
- }, selectIsLocalAudioEnabled);
24
-
25
- this.store.subscribe(isCamActive => {
26
- navigator.mediaSession?.setCameraActive?.(isCamActive);
27
- }, selectIsLocalVideoEnabled);
28
- };
29
-
30
- toggleMic = async () => {
31
- console.log('toggle mic clicked in pip');
32
- const current = this.store.getState(selectIsLocalAudioEnabled);
33
- await this.actions.setLocalAudioEnabled(!current);
34
- };
35
-
36
- toggleCam = async () => {
37
- console.log('toggle cam clicked in pip');
38
- const current = this.store.getState(selectIsLocalVideoEnabled);
39
- await this.actions.setLocalVideoEnabled(!current);
40
- };
41
-
42
- leave = () => {
43
- console.log('leave called from pip');
44
- this.actions.leave();
45
- };
46
-
47
- setUpHandlers = () => {
48
- if (navigator.mediaSession) {
49
- try {
50
- navigator.mediaSession.setActionHandler('togglemicrophone', this.toggleMic);
51
- navigator.mediaSession.setActionHandler('togglecamera', this.toggleCam);
52
- navigator.mediaSession.setActionHandler('hangup', this.leave);
53
- } catch (err) {
54
- console.error('error in setting media session handlers', err);
55
- }
56
- }
57
- };
58
- }
59
-
60
- export const MediaSession = new SetupMediaSession();
@@ -1,10 +0,0 @@
1
- import { createContext } from 'react';
2
-
3
- export type PIPContextType = {
4
- isSupported: boolean;
5
- pipWindow: Window | null;
6
- requestPipWindow: (width: number, height: number) => Promise<void>;
7
- closePipWindow: () => void;
8
- };
9
-
10
- export const PIPContext = createContext<PIPContextType | undefined>(undefined);
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import PIPComponent from './PIPComponent';
3
-
4
- export const PIP = ({ content = null }) => {
5
- return <PIPComponent content={content} />;
6
- };
@@ -1,72 +0,0 @@
1
- import { PictureInPicture } from './PIPManager';
2
-
3
- describe('pip manager tests', () => {
4
- /**
5
- * Ensure that if a track is showing in both before and after, it's at the
6
- * same position.
7
- */
8
- test('merging old and new tracks to show avoids shuffling', () => {
9
- const makeTestData = (oldArr, newArr, result) => {
10
- return { oldArr, newArr, result };
11
- };
12
-
13
- const examples = [
14
- makeTestData([1, 5, 9, 3], [3, 8, 2, 9], [8, 2, 9, 3]),
15
- makeTestData([1, 3, 5], [5, 3, 1], [1, 3, 5]),
16
- makeTestData([2, 7, 9, 4], [9, 2, 4, 6], [2, 6, 9, 4]),
17
- makeTestData([1, 2, 3], [4, 5, 6], [4, 5, 6]),
18
- makeTestData([1, 2], [4, 5, 2, 1], [1, 2, 4, 5]),
19
- makeTestData([4, 1, 2, 3], [1, 3], [3, 1]),
20
- makeTestData([4, 5, 1, 3], [1, 3], [1, 3]),
21
- makeTestData([], [1, 3], [1, 3]),
22
- makeTestData([1, 3], [], []),
23
- makeTestData([1], [4, 2, 1, 3], [1, 4, 2, 3]),
24
- makeTestData([4, 2, 1, 3], [1], [1]),
25
- makeTestData([], [], []),
26
- ];
27
-
28
- examples.forEach(example => {
29
- expect(PictureInPicture.orderNewTracksToShow(example.newArr, example.oldArr)).toEqual(example.result);
30
- });
31
- });
32
-
33
- /**
34
- * It's very important that detach is properly called for old tracks to guarantee
35
- * no unnecessary bandwidth consumption.
36
- * For simplicity's sake currently, detach/attach is done if position of
37
- * the track changes as well. That is earlier it was showing on third position
38
- * but not it's on second position(because there are only two tracks left to show).
39
- */
40
- test('attach and detach are called properly after tracks in view changes', async () => {
41
- const makeTestData = (oldTracks, newTracks, detachFor, attachFor) => {
42
- return { oldTracks, newTracks, detachFor, attachFor };
43
- };
44
-
45
- let attachCalledFor = [];
46
- let detachCalledFor = [];
47
- PictureInPicture.hmsActions = {
48
- attachVideo: jest.fn(track => attachCalledFor.push(track)),
49
- detachVideo: jest.fn(track => detachCalledFor.push(track)),
50
- };
51
-
52
- const examples = [
53
- makeTestData([1, 2], [3, 4], [1, 2], [3, 4]),
54
- makeTestData([1, 2], [1, 2], [], []),
55
- makeTestData([1, 5, 9, 3], [8, 2, 9, 3], [1, 5], [8, 2]),
56
- makeTestData([1, 5, 9], [6, 5, 9], [1], [6]),
57
- makeTestData([], [1, 3], [], [1, 3]),
58
- makeTestData([1, 3], [], [1, 3], []),
59
- makeTestData([1], [4, 2, 1, 3], [1], [4, 2, 1, 3]),
60
- makeTestData([4, 2, 1, 3], [1], [4, 2, 1, 3], [1]),
61
- makeTestData([], [], [], []),
62
- ];
63
-
64
- for (let example of examples) {
65
- attachCalledFor = [];
66
- detachCalledFor = [];
67
- await PictureInPicture.detachOldAttachNewTracks(example.oldTracks, example.newTracks);
68
- expect(attachCalledFor).toEqual(example.attachFor);
69
- expect(detachCalledFor).toEqual(example.detachFor);
70
- }
71
- });
72
- });