@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,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
- });