@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.
- package/dist/Prebuilt/App.d.ts +0 -1
- package/dist/Prebuilt/AppContext.d.ts +0 -1
- package/dist/index.cjs.css +194 -219
- package/dist/index.cjs.css.map +3 -3
- package/dist/index.cjs.js +8 -56
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.css +194 -219
- package/dist/index.css.map +3 -3
- package/dist/index.js +8 -56
- package/dist/index.js.map +3 -3
- package/dist/meta.cjs.json +23 -41
- package/dist/meta.esbuild.json +23 -41
- package/package.json +8 -9
- package/src/Accordion/Accordion.tsx +0 -88
- package/src/Accordion/index.ts +0 -8
- package/src/AudioLevel/AudioLevel.tsx +0 -84
- package/src/AudioLevel/audio-level.png +0 -0
- package/src/AudioLevel/index.ts +0 -2
- package/src/AudioLevel/useBorderAudioLevel.tsx +0 -34
- package/src/Avatar/Avatar.tsx +0 -60
- package/src/Avatar/getAvatarBg.ts +0 -50
- package/src/Avatar/index.ts +0 -1
- package/src/Button/Button.tsx +0 -210
- package/src/Button/index.tsx +0 -1
- package/src/Checkbox/Checkbox.tsx +0 -35
- package/src/Checkbox/index.tsx +0 -1
- package/src/Collapsible/Collapsible.tsx +0 -34
- package/src/Collapsible/index.tsx +0 -1
- package/src/Diagnostics/AudioTest.tsx +0 -188
- package/src/Diagnostics/BrowserTest.tsx +0 -141
- package/src/Diagnostics/ConnectivityTest.tsx +0 -383
- package/src/Diagnostics/DeviceSelector.jsx +0 -71
- package/src/Diagnostics/Diagnostics.tsx +0 -190
- package/src/Diagnostics/DiagnosticsContext.ts +0 -46
- package/src/Diagnostics/VideoTest.tsx +0 -72
- package/src/Diagnostics/components.tsx +0 -70
- package/src/Diagnostics/index.ts +0 -1
- package/src/Divider/Divider.tsx +0 -45
- package/src/Divider/index.ts +0 -1
- package/src/Dropdown/Dropdown.tsx +0 -145
- package/src/Dropdown/index.tsx +0 -1
- package/src/Fieldset/Fieldset.tsx +0 -11
- package/src/Fieldset/index.tsx +0 -1
- package/src/Footer/Footer.tsx +0 -47
- package/src/Footer/index.tsx +0 -1
- package/src/IconButton/IconButton.tsx +0 -43
- package/src/IconButton/index.tsx +0 -1
- package/src/Input/Input.tsx +0 -109
- package/src/Input/index.tsx +0 -1
- package/src/Label/Label.tsx +0 -8
- package/src/Label/index.ts +0 -1
- package/src/Layout/Box.tsx +0 -3
- package/src/Layout/Flex.tsx +0 -76
- package/src/Layout/index.tsx +0 -2
- package/src/Link/Link.tsx +0 -54
- package/src/Link/index.tsx +0 -2
- package/src/Loading/Loading.tsx +0 -30
- package/src/Loading/index.ts +0 -1
- package/src/Modal/Dialog.tsx +0 -57
- package/src/Modal/DialogContent.tsx +0 -65
- package/src/Modal/index.ts +0 -1
- package/src/Pagination/StyledPagination.tsx +0 -70
- package/src/Pagination/index.tsx +0 -1
- package/src/Popover/index.tsx +0 -34
- package/src/Prebuilt/App.tsx +0 -323
- package/src/Prebuilt/AppContext.tsx +0 -34
- package/src/Prebuilt/AppStateContext.tsx +0 -95
- package/src/Prebuilt/IconButton.tsx +0 -26
- package/src/Prebuilt/common/PeersSorter.ts +0 -111
- package/src/Prebuilt/common/constants.ts +0 -151
- package/src/Prebuilt/common/hooks.ts +0 -257
- package/src/Prebuilt/common/utils.js +0 -185
- package/src/Prebuilt/components/AppData/AppData.tsx +0 -208
- package/src/Prebuilt/components/AppData/useChatState.js +0 -18
- package/src/Prebuilt/components/AppData/useSheet.ts +0 -33
- package/src/Prebuilt/components/AppData/useSidepane.js +0 -99
- package/src/Prebuilt/components/AppData/useSidepaneResetOnLayoutUpdate.tsx +0 -22
- package/src/Prebuilt/components/AppData/useUISettings.js +0 -212
- package/src/Prebuilt/components/AudioVideoToggle.tsx +0 -411
- package/src/Prebuilt/components/AuthToken.tsx +0 -148
- package/src/Prebuilt/components/CaptionIcon.tsx +0 -27
- package/src/Prebuilt/components/Chat/ArrowNavigation.tsx +0 -44
- package/src/Prebuilt/components/Chat/Chat.tsx +0 -190
- package/src/Prebuilt/components/Chat/ChatActions.tsx +0 -314
- package/src/Prebuilt/components/Chat/ChatBody.tsx +0 -493
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +0 -316
- package/src/Prebuilt/components/Chat/ChatSelector.tsx +0 -228
- package/src/Prebuilt/components/Chat/ChatSelectorContainer.tsx +0 -158
- package/src/Prebuilt/components/Chat/ChatStates.tsx +0 -73
- package/src/Prebuilt/components/Chat/EmptyChat.tsx +0 -58
- package/src/Prebuilt/components/Chat/MwebChatOption.tsx +0 -24
- package/src/Prebuilt/components/Chat/PinnedMessage.tsx +0 -140
- package/src/Prebuilt/components/Chat/StickIndicator.tsx +0 -24
- package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +0 -32
- package/src/Prebuilt/components/Chat/useUnreadCount.ts +0 -19
- package/src/Prebuilt/components/Chat/utils.ts +0 -11
- package/src/Prebuilt/components/ChatSettings.tsx +0 -68
- package/src/Prebuilt/components/Chip.tsx +0 -40
- package/src/Prebuilt/components/ConferenceScreen.tsx +0 -205
- package/src/Prebuilt/components/Connection/ConnectionIndicator.tsx +0 -89
- package/src/Prebuilt/components/Connection/TileConnection.tsx +0 -93
- package/src/Prebuilt/components/Connection/connectionQualityUtils.js +0 -37
- package/src/Prebuilt/components/EmojiReaction.jsx +0 -100
- package/src/Prebuilt/components/EndCallFeedback/Feedback.tsx +0 -71
- package/src/Prebuilt/components/EndCallFeedback/FeedbackForm.tsx +0 -381
- package/src/Prebuilt/components/EndCallFeedback/ThankyouView.tsx +0 -64
- package/src/Prebuilt/components/ErrorBoundary.jsx +0 -102
- package/src/Prebuilt/components/Footer/ChatToggle.tsx +0 -53
- package/src/Prebuilt/components/Footer/EmojiCard.jsx +0 -34
- package/src/Prebuilt/components/Footer/Footer.tsx +0 -115
- package/src/Prebuilt/components/Footer/PaginatedParticipants.tsx +0 -124
- package/src/Prebuilt/components/Footer/ParticipantList.tsx +0 -478
- package/src/Prebuilt/components/Footer/PollsToggle.tsx +0 -37
- package/src/Prebuilt/components/Footer/RoleAccordion.tsx +0 -183
- package/src/Prebuilt/components/Footer/RoleOptions.tsx +0 -215
- package/src/Prebuilt/components/Footer/WhiteboardToggle.tsx +0 -52
- package/src/Prebuilt/components/FullPageProgress.tsx +0 -22
- package/src/Prebuilt/components/HMSVideo/Controls.jsx +0 -22
- package/src/Prebuilt/components/HMSVideo/FullscreenButton.tsx +0 -13
- package/src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.tsx +0 -72
- package/src/Prebuilt/components/HMSVideo/HLSCaptionSelector.tsx +0 -15
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.tsx +0 -248
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +0 -75
- package/src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx +0 -86
- package/src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx +0 -27
- package/src/Prebuilt/components/HMSVideo/PlayPauseSeekControls.tsx +0 -158
- package/src/Prebuilt/components/HMSVideo/PlayerContext.tsx +0 -15
- package/src/Prebuilt/components/HMSVideo/SeekControl.tsx +0 -22
- package/src/Prebuilt/components/HMSVideo/VideoProgress.tsx +0 -100
- package/src/Prebuilt/components/HMSVideo/VideoTime.tsx +0 -52
- package/src/Prebuilt/components/HMSVideo/VolumeControl.tsx +0 -70
- package/src/Prebuilt/components/HMSVideo/index.ts +0 -24
- package/src/Prebuilt/components/HMSVideo/utils.ts +0 -37
- package/src/Prebuilt/components/Header/Header.tsx +0 -52
- package/src/Prebuilt/components/Header/HeaderComponents.jsx +0 -57
- package/src/Prebuilt/components/Header/ParticipantFilter.jsx +0 -89
- package/src/Prebuilt/components/Header/RoomDetailsHeader.tsx +0 -51
- package/src/Prebuilt/components/Header/StreamActions.tsx +0 -297
- package/src/Prebuilt/components/Header/common.jsx +0 -196
- package/src/Prebuilt/components/Header/index.tsx +0 -1
- package/src/Prebuilt/components/HlsStatsOverlay.jsx +0 -89
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.tsx +0 -167
- package/src/Prebuilt/components/Input/KeyboardInputManager.js +0 -107
- package/src/Prebuilt/components/InsetTile.tsx +0 -136
- package/src/Prebuilt/components/LayoutModeSelector.tsx +0 -112
- package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +0 -166
- package/src/Prebuilt/components/Leave/EndSessionContent.tsx +0 -64
- package/src/Prebuilt/components/Leave/LeaveAtoms.tsx +0 -26
- package/src/Prebuilt/components/Leave/LeaveCard.tsx +0 -36
- package/src/Prebuilt/components/Leave/LeaveRoom.tsx +0 -82
- package/src/Prebuilt/components/Leave/LeaveSessionContent.tsx +0 -61
- package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +0 -135
- package/src/Prebuilt/components/LeaveScreen.tsx +0 -71
- package/src/Prebuilt/components/MoreSettings/ActionTile.jsx +0 -60
- package/src/Prebuilt/components/MoreSettings/BulkRoleChangeModal.jsx +0 -139
- package/src/Prebuilt/components/MoreSettings/CaptionContent.tsx +0 -143
- package/src/Prebuilt/components/MoreSettings/CaptionModal.tsx +0 -37
- package/src/Prebuilt/components/MoreSettings/ChangeNameContent.tsx +0 -123
- package/src/Prebuilt/components/MoreSettings/ChangeNameModal.tsx +0 -78
- package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +0 -81
- package/src/Prebuilt/components/MoreSettings/FullScreenItem.tsx +0 -26
- package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +0 -29
- package/src/Prebuilt/components/MoreSettings/MuteAllContent.tsx +0 -81
- package/src/Prebuilt/components/MoreSettings/MuteAllModal.tsx +0 -72
- package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +0 -282
- package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +0 -387
- package/src/Prebuilt/components/MoreSettings/constants.ts +0 -14
- package/src/Prebuilt/components/MwebLandscapePrompt.tsx +0 -81
- package/src/Prebuilt/components/Notifications/AutoplayBlockedModal.tsx +0 -39
- package/src/Prebuilt/components/Notifications/ChatNotifications.tsx +0 -34
- package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +0 -18
- package/src/Prebuilt/components/Notifications/DeviceInUseError.tsx +0 -86
- package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +0 -56
- package/src/Prebuilt/components/Notifications/HLSFailureModal.tsx +0 -71
- package/src/Prebuilt/components/Notifications/HandRaisedNotifications.tsx +0 -78
- package/src/Prebuilt/components/Notifications/InitErrorModal.tsx +0 -42
- package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +0 -24
- package/src/Prebuilt/components/Notifications/Notifications.tsx +0 -65
- package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +0 -52
- package/src/Prebuilt/components/Notifications/PermissionErrorModal.tsx +0 -144
- package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +0 -71
- package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +0 -33
- package/src/Prebuilt/components/Notifications/RoleChangeNotification.tsx +0 -24
- package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +0 -61
- package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +0 -41
- package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +0 -63
- package/src/Prebuilt/components/Notifications/TranscriptionNotifications.tsx +0 -58
- package/src/Prebuilt/components/Notifications/index.tsx +0 -1
- package/src/Prebuilt/components/PIP/PIPChat.tsx +0 -292
- package/src/Prebuilt/components/PIP/PIPChatOption.tsx +0 -18
- package/src/Prebuilt/components/PIP/PIPComponent.tsx +0 -90
- package/src/Prebuilt/components/PIP/PIPManager.ts +0 -335
- package/src/Prebuilt/components/PIP/PIPProvider.tsx +0 -56
- package/src/Prebuilt/components/PIP/PIPWindow.tsx +0 -13
- package/src/Prebuilt/components/PIP/SetupMediaSession.js +0 -60
- package/src/Prebuilt/components/PIP/context.ts +0 -10
- package/src/Prebuilt/components/PIP/index.jsx +0 -6
- package/src/Prebuilt/components/PIP/pip.test.js +0 -72
- package/src/Prebuilt/components/PIP/pipUtils.js +0 -183
- package/src/Prebuilt/components/PIP/usePIPChat.tsx +0 -105
- package/src/Prebuilt/components/PIP/usePIPWindow.tsx +0 -12
- package/src/Prebuilt/components/Pagination.tsx +0 -60
- package/src/Prebuilt/components/Polls/CreatePollQuiz/PollsQuizMenu.tsx +0 -248
- package/src/Prebuilt/components/Polls/CreateQuestions/CreateQuestions.jsx +0 -142
- package/src/Prebuilt/components/Polls/CreateQuestions/DeleteQuestionModal.tsx +0 -74
- package/src/Prebuilt/components/Polls/CreateQuestions/QuestionForm.tsx +0 -324
- package/src/Prebuilt/components/Polls/CreateQuestions/SavedQuestion.tsx +0 -64
- package/src/Prebuilt/components/Polls/Polls.tsx +0 -31
- package/src/Prebuilt/components/Polls/Voting/LeaderboardEntry.tsx +0 -76
- package/src/Prebuilt/components/Polls/Voting/LeaderboardSummary.tsx +0 -116
- package/src/Prebuilt/components/Polls/Voting/PeerParticipationSummary.tsx +0 -60
- package/src/Prebuilt/components/Polls/Voting/QuestionCard.jsx +0 -221
- package/src/Prebuilt/components/Polls/Voting/StandardVoting.tsx +0 -47
- package/src/Prebuilt/components/Polls/Voting/StatisticBox.tsx +0 -20
- package/src/Prebuilt/components/Polls/Voting/TimedVoting.tsx +0 -55
- package/src/Prebuilt/components/Polls/Voting/Voting.tsx +0 -143
- package/src/Prebuilt/components/Polls/Voting/useQuizSummary.tsx +0 -50
- package/src/Prebuilt/components/Polls/common/Line.tsx +0 -4
- package/src/Prebuilt/components/Polls/common/MultipleChoiceOptions.jsx +0 -115
- package/src/Prebuilt/components/Polls/common/OptionInputWithDelete.tsx +0 -38
- package/src/Prebuilt/components/Polls/common/SingleChoiceOptions.jsx +0 -140
- package/src/Prebuilt/components/Polls/common/StatusIndicator.tsx +0 -35
- package/src/Prebuilt/components/Polls/common/VoteCount.tsx +0 -15
- package/src/Prebuilt/components/Polls/common/VoteProgress.tsx +0 -18
- package/src/Prebuilt/components/Polls/common/constants.ts +0 -5
- package/src/Prebuilt/components/Polls/common/utils.ts +0 -22
- package/src/Prebuilt/components/Preview/PreviewForm.tsx +0 -94
- package/src/Prebuilt/components/Preview/PreviewJoin.tsx +0 -292
- package/src/Prebuilt/components/Preview/PreviewScreen.tsx +0 -38
- package/src/Prebuilt/components/PreviousRoleInMetadata.tsx +0 -20
- package/src/Prebuilt/components/RaiseHand.tsx +0 -30
- package/src/Prebuilt/components/RemoveParticipant.tsx +0 -35
- package/src/Prebuilt/components/RoleChangeModal.tsx +0 -188
- package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +0 -75
- package/src/Prebuilt/components/RoleChangeRequest/RoleChangeRequestModal.tsx +0 -94
- package/src/Prebuilt/components/RoomDetails/Duration.tsx +0 -26
- package/src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx +0 -63
- package/src/Prebuilt/components/RoomDetails/RoomDetailsRow.tsx +0 -23
- package/src/Prebuilt/components/RoomDetails/RoomDetailsSheet.tsx +0 -45
- package/src/Prebuilt/components/ScreenShareToggle.jsx +0 -58
- package/src/Prebuilt/components/ScreenshareDisplay.tsx +0 -39
- package/src/Prebuilt/components/ScreenshareTile.tsx +0 -134
- package/src/Prebuilt/components/SecondaryTiles.tsx +0 -81
- package/src/Prebuilt/components/Settings/DeviceSettings.jsx +0 -208
- package/src/Prebuilt/components/Settings/LayoutSettings.tsx +0 -74
- package/src/Prebuilt/components/Settings/NotificationSettings.tsx +0 -66
- package/src/Prebuilt/components/Settings/SettingsModal.jsx +0 -301
- package/src/Prebuilt/components/Settings/StartRecording.jsx +0 -101
- package/src/Prebuilt/components/Settings/SwitchWithLabel.tsx +0 -53
- package/src/Prebuilt/components/Settings/common.ts +0 -16
- package/src/Prebuilt/components/ShareMenuIcon.jsx +0 -27
- package/src/Prebuilt/components/SidePaneTabs.tsx +0 -214
- package/src/Prebuilt/components/StatsForNerds.jsx +0 -373
- package/src/Prebuilt/components/Streaming/Common.jsx +0 -143
- package/src/Prebuilt/components/Streaming/ResolutionInput.jsx +0 -88
- package/src/Prebuilt/components/TileMenu/TileMenu.tsx +0 -148
- package/src/Prebuilt/components/TileMenu/TileMenuContent.tsx +0 -393
- package/src/Prebuilt/components/TileMenu/utils.ts +0 -7
- package/src/Prebuilt/components/Toast/Toast.jsx +0 -17
- package/src/Prebuilt/components/Toast/ToastBatcher.js +0 -64
- package/src/Prebuilt/components/Toast/ToastConfig.jsx +0 -177
- package/src/Prebuilt/components/Toast/ToastContainer.jsx +0 -30
- package/src/Prebuilt/components/Toast/ToastManager.js +0 -44
- package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +0 -62
- package/src/Prebuilt/components/VideoLayouts/Grid.tsx +0 -43
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +0 -155
- package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +0 -91
- package/src/Prebuilt/components/VideoLayouts/RoleProminence.tsx +0 -66
- package/src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx +0 -74
- package/src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx +0 -93
- package/src/Prebuilt/components/VideoLayouts/interface.ts +0 -11
- package/src/Prebuilt/components/VideoTile.tsx +0 -203
- package/src/Prebuilt/components/VirtualBackground/VBCollection.tsx +0 -52
- package/src/Prebuilt/components/VirtualBackground/VBHandler.tsx +0 -130
- package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +0 -57
- package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +0 -252
- package/src/Prebuilt/components/VirtualBackground/VBToggle.tsx +0 -50
- package/src/Prebuilt/components/hooks/useAudioOutputTest.tsx +0 -20
- package/src/Prebuilt/components/hooks/useAutoStartStreaming.tsx +0 -70
- package/src/Prebuilt/components/hooks/useChatBlacklist.ts +0 -29
- package/src/Prebuilt/components/hooks/useCloseScreenshareWhiteboard.tsx +0 -17
- package/src/Prebuilt/components/hooks/useDropdownList.ts +0 -24
- package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +0 -3
- package/src/Prebuilt/components/hooks/useFullscreen.ts +0 -46
- package/src/Prebuilt/components/hooks/useGroupOnStageActions.tsx +0 -54
- package/src/Prebuilt/components/hooks/useMetadata.tsx +0 -56
- package/src/Prebuilt/components/hooks/usePeerOnStageActions.tsx +0 -49
- package/src/Prebuilt/components/hooks/usePinnedBy.tsx +0 -22
- package/src/Prebuilt/components/hooks/usePinnedMessages.ts +0 -78
- package/src/Prebuilt/components/hooks/usePlaylist.js +0 -25
- package/src/Prebuilt/components/hooks/usePlaylistMusic.js +0 -35
- package/src/Prebuilt/components/hooks/useRedirectToLeave.tsx +0 -23
- package/src/Prebuilt/components/hooks/useRoleProminencePeers.tsx +0 -39
- package/src/Prebuilt/components/hooks/useScreenshareAudio.js +0 -28
- package/src/Prebuilt/components/hooks/useTileLayout.tsx +0 -128
- package/src/Prebuilt/components/hooks/useUnreadPollQuizPresent.tsx +0 -17
- package/src/Prebuilt/components/hooks/useUserPreferences.jsx +0 -26
- package/src/Prebuilt/components/hooks/useVideoTileLayout.ts +0 -26
- package/src/Prebuilt/components/init/Init.jsx +0 -31
- package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +0 -42
- package/src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx +0 -31
- package/src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx +0 -32
- package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +0 -211
- package/src/Prebuilt/components/pdfAnnotator/submitPdf.jsx +0 -48
- package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +0 -71
- package/src/Prebuilt/components/peerTileUtils.tsx +0 -42
- package/src/Prebuilt/images/android-perm-1.png +0 -0
- package/src/Prebuilt/images/empty-chat.svg +0 -12
- package/src/Prebuilt/images/ios-perm-0.png +0 -0
- package/src/Prebuilt/images/pdf-share.png +0 -0
- package/src/Prebuilt/images/rtmp.png +0 -0
- package/src/Prebuilt/images/screen-share.png +0 -0
- package/src/Prebuilt/images/transaction_error.svg +0 -12
- package/src/Prebuilt/index.ts +0 -1
- package/src/Prebuilt/layouts/EmbedView.jsx +0 -94
- package/src/Prebuilt/layouts/HLSView.jsx +0 -794
- package/src/Prebuilt/layouts/PDFView.jsx +0 -67
- package/src/Prebuilt/layouts/Sheet.tsx +0 -14
- package/src/Prebuilt/layouts/SidePane.tsx +0 -241
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +0 -164
- package/src/Prebuilt/layouts/WaitingView.tsx +0 -52
- package/src/Prebuilt/plugins/CaptionsViewer.tsx +0 -261
- package/src/Prebuilt/plugins/FlyingEmoji.jsx +0 -154
- package/src/Prebuilt/plugins/RemoteStopScreenshare.jsx +0 -18
- package/src/Prebuilt/plugins/transcription/Transcriber.js +0 -216
- package/src/Prebuilt/plugins/transcription/TranscriptionButton.jsx +0 -138
- package/src/Prebuilt/plugins/transcription/index.jsx +0 -1
- package/src/Prebuilt/primitives/DialogContent.jsx +0 -285
- package/src/Prebuilt/primitives/DropdownTrigger.jsx +0 -46
- package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +0 -60
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +0 -88
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.ts +0 -10
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.ts +0 -112
- package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +0 -53
- package/src/Prebuilt/services/FeatureFlags.jsx +0 -46
- package/src/Progress/index.tsx +0 -17
- package/src/QRCode/QRCode.tsx +0 -6
- package/src/QRCode/index.tsx +0 -1
- package/src/RadioGroup/RadioGroup.tsx +0 -33
- package/src/RadioGroup/index.tsx +0 -1
- package/src/ReactSelect/ReactSelect.tsx +0 -97
- package/src/ReactSelect/index.ts +0 -1
- package/src/Select/Select.tsx +0 -63
- package/src/Select/index.ts +0 -1
- package/src/Sheet/Sheet.tsx +0 -122
- package/src/Sheet/index.ts +0 -1
- package/src/Slider/Slider.tsx +0 -70
- package/src/Slider/index.ts +0 -1
- package/src/Stats/Stats.tsx +0 -243
- package/src/Stats/StyledStats.tsx +0 -57
- package/src/Stats/formatBytes.ts +0 -19
- package/src/Stats/index.tsx +0 -2
- package/src/Stats/useQoE.ts +0 -79
- package/src/Switch/Switch.tsx +0 -52
- package/src/Switch/index.ts +0 -1
- package/src/Tabs/Tabs.tsx +0 -41
- package/src/Tabs/index.tsx +0 -1
- package/src/Text/Text.tsx +0 -149
- package/src/Text/index.tsx +0 -1
- package/src/TextArea/TextArea.tsx +0 -30
- package/src/TextArea/index.tsx +0 -1
- package/src/Theme/ThemeProvider.tsx +0 -98
- package/src/Theme/base.config.ts +0 -236
- package/src/Theme/index.tsx +0 -2
- package/src/Theme/stitches.config.ts +0 -88
- package/src/Theme/useSSR.tsx +0 -24
- package/src/TileMenu/StyledMenuTile.tsx +0 -105
- package/src/TileMenu/TileMenu.tsx +0 -98
- package/src/TileMenu/index.tsx +0 -1
- package/src/Toast/Toast.tsx +0 -170
- package/src/Toast/index.tsx +0 -1
- package/src/Tooltip/Tooltip.tsx +0 -79
- package/src/Tooltip/index.ts +0 -1
- package/src/Video/Video.tsx +0 -61
- package/src/Video/index.tsx +0 -1
- package/src/VideoList/StyledVideoList.tsx +0 -39
- package/src/VideoList/index.tsx +0 -2
- package/src/VideoList/videoListUtils.tsx +0 -20
- package/src/VideoTile/StyledVideoTile.tsx +0 -146
- package/src/VideoTile/index.tsx +0 -1
- package/src/context/DialogContext.tsx +0 -13
- package/src/fixtures/chats.ts +0 -25
- package/src/fixtures/peers.ts +0 -27
- package/src/fixtures/tracks.ts +0 -11
- package/src/hooks/useDialogContainerSelector.tsx +0 -7
- package/src/index.ts +0 -41
- package/src/store/SetupFakeStore.ts +0 -33
- package/src/store/StorybookSDK.ts +0 -231
- package/src/utils/animations.ts +0 -114
- package/src/utils/index.ts +0 -2
- 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
|
-
};
|