@100mslive/react-native-room-kit 1.1.4 → 1.1.5
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/lib/commonjs/HMSContainer.js +1 -1
- package/lib/commonjs/HMSContainer.js.map +1 -1
- package/lib/commonjs/HMSInstanceSetup.js +15 -6
- package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
- package/lib/commonjs/HMSPrebuilt.js +1 -1
- package/lib/commonjs/HMSPrebuilt.js.map +1 -1
- package/lib/commonjs/HMSRoomSetup.js +1 -1
- package/lib/commonjs/HMSRoomSetup.js.map +1 -1
- package/lib/commonjs/components/AnimatedFooter.js +1 -1
- package/lib/commonjs/components/AnimatedFooter.js.map +1 -1
- package/lib/commonjs/components/AnimatedHLSFooter.js +1 -1
- package/lib/commonjs/components/AnimatedHLSFooter.js.map +1 -1
- package/lib/commonjs/components/AnimatedHeader.js +1 -1
- package/lib/commonjs/components/AnimatedHeader.js.map +1 -1
- package/lib/commonjs/components/AvatarView.js +1 -1
- package/lib/commonjs/components/AvatarView.js.map +1 -1
- package/lib/commonjs/components/BackButton.js +1 -1
- package/lib/commonjs/components/BackButton.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +1 -1
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/ChangeNameModalContent.js +1 -1
- package/lib/commonjs/components/ChangeNameModalContent.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatBanner.js +1 -1
- package/lib/commonjs/components/Chat/ChatBanner.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterItem.js +1 -1
- package/lib/commonjs/components/Chat/ChatFilterItem.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterView.js +3 -2
- package/lib/commonjs/components/Chat/ChatFilterView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatList.js +1 -1
- package/lib/commonjs/components/Chat/ChatList.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMessage.js +1 -1
- package/lib/commonjs/components/Chat/ChatMessage.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsModal.js +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsModal.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsView.js +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatPaused.js +1 -1
- package/lib/commonjs/components/Chat/ChatPaused.js.map +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js.map +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js.map +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsView.js +1 -1
- package/lib/commonjs/components/Chat/MessageOptionsView.js.map +1 -1
- package/lib/commonjs/components/Chat/PeerBlockedFromChat.js +1 -1
- package/lib/commonjs/components/Chat/PeerBlockedFromChat.js.map +1 -1
- package/lib/commonjs/components/Chat/PinnedMessages.js +1 -1
- package/lib/commonjs/components/Chat/PinnedMessages.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatView.js +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatView.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ParticipantsView.js +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ParticipantsView.js.map +1 -1
- package/lib/commonjs/components/CreatePoll.js +1 -1
- package/lib/commonjs/components/CreatePoll.js.map +1 -1
- package/lib/commonjs/components/DisplayView.js +1 -1
- package/lib/commonjs/components/DisplayView.js.map +1 -1
- package/lib/commonjs/components/EndRoomModal.js +1 -1
- package/lib/commonjs/components/EndRoomModal.js.map +1 -1
- package/lib/commonjs/components/EndRoomModalContent.js +1 -1
- package/lib/commonjs/components/EndRoomModalContent.js.map +1 -1
- package/lib/commonjs/components/Footer.js +22 -5
- package/lib/commonjs/components/Footer.js.map +1 -1
- package/lib/commonjs/components/FullScreenVideoView.js +1 -1
- package/lib/commonjs/components/FullScreenVideoView.js.map +1 -1
- package/lib/commonjs/components/GridView.js +1 -1
- package/lib/commonjs/components/GridView.js.map +1 -1
- package/lib/commonjs/components/HLSFooter.js +1 -1
- package/lib/commonjs/components/HLSFooter.js.map +1 -1
- package/lib/commonjs/components/HLSView.js +1 -1
- package/lib/commonjs/components/HLSView.js.map +1 -1
- package/lib/commonjs/components/HMSBaseButton.js +1 -1
- package/lib/commonjs/components/HMSBaseButton.js.map +1 -1
- package/lib/commonjs/components/HMSChat.js +1 -1
- package/lib/commonjs/components/HMSChat.js.map +1 -1
- package/lib/commonjs/components/HMSDangerButton.js +1 -1
- package/lib/commonjs/components/HMSDangerButton.js.map +1 -1
- package/lib/commonjs/components/HMSHLSMessage.js +1 -1
- package/lib/commonjs/components/HMSHLSMessage.js.map +1 -1
- package/lib/commonjs/components/HMSHLSMessageList.js +1 -1
- package/lib/commonjs/components/HMSHLSMessageList.js.map +1 -1
- package/lib/commonjs/components/HMSHLSNotStarted.js +1 -1
- package/lib/commonjs/components/HMSHLSNotStarted.js.map +1 -1
- package/lib/commonjs/components/HMSHLSStreamLoading.js +1 -1
- package/lib/commonjs/components/HMSHLSStreamLoading.js.map +1 -1
- package/lib/commonjs/components/HMSHandRaiseNotification.js +1 -1
- package/lib/commonjs/components/HMSHandRaiseNotification.js.map +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js.map +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.js +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.js.map +1 -1
- package/lib/commonjs/components/HMSLiveIndicator.js +1 -1
- package/lib/commonjs/components/HMSLiveIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSLiveViewerCount.js +1 -1
- package/lib/commonjs/components/HMSLiveViewerCount.js.map +1 -1
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js +1 -1
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js.map +1 -1
- package/lib/commonjs/components/HMSLocalVideoView.js +1 -1
- package/lib/commonjs/components/HMSLocalVideoView.js.map +1 -1
- package/lib/commonjs/components/HMSManageAudioOutput.js +1 -1
- package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
- package/lib/commonjs/components/HMSManageCameraRotation.js +1 -1
- package/lib/commonjs/components/HMSManageCameraRotation.js.map +1 -1
- package/lib/commonjs/components/HMSManageLeave.js +1 -1
- package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
- package/lib/commonjs/components/HMSManageLocalAudio.js +1 -1
- package/lib/commonjs/components/HMSManageLocalAudio.js.map +1 -1
- package/lib/commonjs/components/HMSManageLocalVideo.js +1 -1
- package/lib/commonjs/components/HMSManageLocalVideo.js.map +1 -1
- package/lib/commonjs/components/HMSManageNoiseCancellation.js +36 -0
- package/lib/commonjs/components/HMSManageNoiseCancellation.js.map +1 -0
- package/lib/commonjs/components/HMSManageRaiseHand.js +1 -1
- package/lib/commonjs/components/HMSManageRaiseHand.js.map +1 -1
- package/lib/commonjs/components/HMSMeetingEnded.js +1 -1
- package/lib/commonjs/components/HMSMeetingEnded.js.map +1 -1
- package/lib/commonjs/components/HMSNotification.js +1 -1
- package/lib/commonjs/components/HMSNotification.js.map +1 -1
- package/lib/commonjs/components/HMSNotifications.js +1 -1
- package/lib/commonjs/components/HMSNotifications.js.map +1 -1
- package/lib/commonjs/components/HMSOverlayChatView.js +1 -1
- package/lib/commonjs/components/HMSOverlayChatView.js.map +1 -1
- package/lib/commonjs/components/HMSPollsQuizzesNotification.js +1 -1
- package/lib/commonjs/components/HMSPollsQuizzesNotification.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +1 -1
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewJoinButton.js +1 -1
- package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewNetworkQuality.js +1 -1
- package/lib/commonjs/components/HMSPreviewNetworkQuality.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewPeersList.js +1 -1
- package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTile.js +1 -1
- package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTitle.js +1 -1
- package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/HMSPrimaryButton.js +1 -1
- package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -1
- package/lib/commonjs/components/HMSReconnectingNotification.js +1 -1
- package/lib/commonjs/components/HMSReconnectingNotification.js.map +1 -1
- package/lib/commonjs/components/HMSRecordingIndicator.js +1 -1
- package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSRoleChangeDeclinedNotification.js +1 -1
- package/lib/commonjs/components/HMSRoleChangeDeclinedNotification.js.map +1 -1
- package/lib/commonjs/components/HMSRoomOptions.js +1 -1
- package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
- package/lib/commonjs/components/HMSSecondaryButton.js +1 -1
- package/lib/commonjs/components/HMSSecondaryButton.js.map +1 -1
- package/lib/commonjs/components/HMSSendMessageInput.js +1 -1
- package/lib/commonjs/components/HMSSendMessageInput.js.map +1 -1
- package/lib/commonjs/components/HMSTerminalErrorNotification.js +1 -1
- package/lib/commonjs/components/HMSTerminalErrorNotification.js.map +1 -1
- package/lib/commonjs/components/HMSTextInput.js +1 -1
- package/lib/commonjs/components/HMSTextInput.js.map +1 -1
- package/lib/commonjs/components/HMSVideoView.js +1 -1
- package/lib/commonjs/components/HMSVideoView.js.map +1 -1
- package/lib/commonjs/components/Header.js +1 -1
- package/lib/commonjs/components/Header.js.map +1 -1
- package/lib/commonjs/components/LeaderboardEntry.js +1 -1
- package/lib/commonjs/components/LeaderboardEntry.js.map +1 -1
- package/lib/commonjs/components/LeaveRoomBottomSheet.js +1 -1
- package/lib/commonjs/components/LeaveRoomBottomSheet.js.map +1 -1
- package/lib/commonjs/components/LocalPeerRegularVideoView.js +1 -1
- package/lib/commonjs/components/LocalPeerRegularVideoView.js.map +1 -1
- package/lib/commonjs/components/LocalPeerScreenshareView.js +1 -1
- package/lib/commonjs/components/LocalPeerScreenshareView.js.map +1 -1
- package/lib/commonjs/components/Meeting.js +1 -1
- package/lib/commonjs/components/Meeting.js.map +1 -1
- package/lib/commonjs/components/MeetingScreenContent.js +1 -1
- package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
- package/lib/commonjs/components/MiniView.js +1 -1
- package/lib/commonjs/components/MiniView.js.map +1 -1
- package/lib/commonjs/components/Modals.js +1 -1
- package/lib/commonjs/components/Modals.js.map +1 -1
- package/lib/commonjs/components/OverlayContainer.js +1 -1
- package/lib/commonjs/components/OverlayContainer.js.map +1 -1
- package/lib/commonjs/components/OverlayedViews.js +1 -1
- package/lib/commonjs/components/OverlayedViews.js.map +1 -1
- package/lib/commonjs/components/PIPView.js +1 -1
- package/lib/commonjs/components/PIPView.js.map +1 -1
- package/lib/commonjs/components/PaginationDots.js +1 -1
- package/lib/commonjs/components/PaginationDots.js.map +1 -1
- package/lib/commonjs/components/Participants/MultiRoleParticipantsList.js +1 -1
- package/lib/commonjs/components/Participants/MultiRoleParticipantsList.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsAccordian.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsAccordian.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsAccordianExpanded.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsAccordianExpanded.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupFooter.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupFooter.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupOptions.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsGroupOptions.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItem.js +12 -3
- package/lib/commonjs/components/Participants/ParticipantsItem.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItemOption.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItemOption.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItemOptions.js +6 -5
- package/lib/commonjs/components/Participants/ParticipantsItemOptions.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsList.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsList.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsListFooter.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsListFooter.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsSeachInput.js +1 -1
- package/lib/commonjs/components/Participants/ParticipantsSeachInput.js.map +1 -1
- package/lib/commonjs/components/ParticipantsCount.js +1 -1
- package/lib/commonjs/components/ParticipantsCount.js.map +1 -1
- package/lib/commonjs/components/PeerMinimizedView.js +1 -1
- package/lib/commonjs/components/PeerMinimizedView.js.map +1 -1
- package/lib/commonjs/components/PeerRTCStatsContainer.js +1 -1
- package/lib/commonjs/components/PeerRTCStatsContainer.js.map +1 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js +3 -2
- package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/AvatarView.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/AvatarView.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/HMSFullScreenButton.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/HMSFullScreenButton.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/HMSPinchGesture.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerAudioIndicator.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerAudioIndicator.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerMetadata.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +12 -3
- package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js +2 -1
- package/lib/commonjs/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
- package/lib/commonjs/components/PeerVideoTile/VideoView.js +1 -1
- package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -1
- package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js +1 -1
- package/lib/commonjs/components/PollAndQuizQuestionResponseCard.js.map +1 -1
- package/lib/commonjs/components/PollAndQuizQuestionResponseCards.js +1 -1
- package/lib/commonjs/components/PollAndQuizQuestionResponseCards.js.map +1 -1
- package/lib/commonjs/components/PollAndQuizSheetScreen.js +1 -1
- package/lib/commonjs/components/PollAndQuizSheetScreen.js.map +1 -1
- package/lib/commonjs/components/PollAndQuizVoting.js +12 -4
- package/lib/commonjs/components/PollAndQuizVoting.js.map +1 -1
- package/lib/commonjs/components/PollAndQuizzStateLabel.js +1 -1
- package/lib/commonjs/components/PollAndQuizzStateLabel.js.map +1 -1
- package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js +1 -1
- package/lib/commonjs/components/PollQDeleteConfirmationSheetView.js.map +1 -1
- package/lib/commonjs/components/PollQuestion.js +1 -1
- package/lib/commonjs/components/PollQuestion.js.map +1 -1
- package/lib/commonjs/components/PollQuestionDeleteConfirmation.js +1 -1
- package/lib/commonjs/components/PollQuestionDeleteConfirmation.js.map +1 -1
- package/lib/commonjs/components/PollQuestions.js +1 -1
- package/lib/commonjs/components/PollQuestions.js.map +1 -1
- package/lib/commonjs/components/PollResponseProgressView.js +1 -1
- package/lib/commonjs/components/PollResponseProgressView.js.map +1 -1
- package/lib/commonjs/components/PollsAndQuizBottomSheet.js +1 -1
- package/lib/commonjs/components/PollsAndQuizBottomSheet.js.map +1 -1
- package/lib/commonjs/components/PollsAndQuizzesCard.js +1 -1
- package/lib/commonjs/components/PollsAndQuizzesCard.js.map +1 -1
- package/lib/commonjs/components/PollsAndQuizzesModalContent.js +1 -1
- package/lib/commonjs/components/PollsAndQuizzesModalContent.js.map +1 -1
- package/lib/commonjs/components/PollsConfigAndList.js +1 -1
- package/lib/commonjs/components/PollsConfigAndList.js.map +1 -1
- package/lib/commonjs/components/PressableIcon.js +1 -1
- package/lib/commonjs/components/PressableIcon.js.map +1 -1
- package/lib/commonjs/components/Preview.js +26 -5
- package/lib/commonjs/components/Preview.js.map +1 -1
- package/lib/commonjs/components/PreviewForRoleChangeModal.js +1 -1
- package/lib/commonjs/components/PreviewForRoleChangeModal.js.map +1 -1
- package/lib/commonjs/components/PreviousPollsAndQuizzesList.js +1 -1
- package/lib/commonjs/components/PreviousPollsAndQuizzesList.js.map +1 -1
- package/lib/commonjs/components/QuizEndOptionsView.js +1 -1
- package/lib/commonjs/components/QuizEndOptionsView.js.map +1 -1
- package/lib/commonjs/components/QuizLeaderboardEntriesScreen.js +1 -1
- package/lib/commonjs/components/QuizLeaderboardEntriesScreen.js.map +1 -1
- package/lib/commonjs/components/QuizLeaderboardScreen.js +1 -1
- package/lib/commonjs/components/QuizLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/components/QuizLeaderboardSummary.js +1 -1
- package/lib/commonjs/components/QuizLeaderboardSummary.js.map +1 -1
- package/lib/commonjs/components/ReconnectionView.js +1 -1
- package/lib/commonjs/components/ReconnectionView.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js +67 -2
- package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/StatusBar.js +1 -1
- package/lib/commonjs/components/StatusBar.js.map +1 -1
- package/lib/commonjs/components/StopRecordingModalContent.js +1 -1
- package/lib/commonjs/components/StopRecordingModalContent.js.map +1 -1
- package/lib/commonjs/components/StreamingQualityModalContent.js +1 -1
- package/lib/commonjs/components/StreamingQualityModalContent.js.map +1 -1
- package/lib/commonjs/components/UnmountAfterDelay.js +1 -1
- package/lib/commonjs/components/UnmountAfterDelay.js.map +1 -1
- package/lib/commonjs/components/VoterParticipationSummary.js +1 -1
- package/lib/commonjs/components/VoterParticipationSummary.js.map +1 -1
- package/lib/commonjs/components/WebrtcView.js +1 -1
- package/lib/commonjs/components/WebrtcView.js.map +1 -1
- package/lib/commonjs/components/WelcomeInMeeting.js +1 -1
- package/lib/commonjs/components/WelcomeInMeeting.js.map +1 -1
- package/lib/commonjs/components/styles.js +4 -0
- package/lib/commonjs/components/styles.js.map +1 -1
- package/lib/commonjs/redux/actionTypes.js +1 -0
- package/lib/commonjs/redux/actionTypes.js.map +1 -1
- package/lib/commonjs/redux/actions/index.js +8 -3
- package/lib/commonjs/redux/actions/index.js.map +1 -1
- package/lib/commonjs/redux/reducers/appState.js +1 -1
- package/lib/commonjs/redux/reducers/appState.js.map +1 -1
- package/lib/commonjs/redux/reducers/hmsStates.js +7 -1
- package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
- package/lib/commonjs/redux/reducers/message.js +1 -1
- package/lib/commonjs/redux/reducers/message.js.map +1 -1
- package/lib/commonjs/redux/reducers/userState.js +1 -1
- package/lib/commonjs/redux/reducers/userState.js.map +1 -1
- package/lib/commonjs/utils/functions.js +1 -0
- package/lib/commonjs/utils/functions.js.map +1 -1
- package/lib/commonjs/utils/hooks.js +12 -18
- package/lib/commonjs/utils/hooks.js.map +1 -1
- package/lib/module/HMSInstanceSetup.js +16 -7
- package/lib/module/HMSInstanceSetup.js.map +1 -1
- package/lib/module/components/Chat/ChatFilterView.js +2 -1
- package/lib/module/components/Chat/ChatFilterView.js.map +1 -1
- package/lib/module/components/Footer.js +23 -6
- package/lib/module/components/Footer.js.map +1 -1
- package/lib/module/components/HMSManageNoiseCancellation.js +28 -0
- package/lib/module/components/HMSManageNoiseCancellation.js.map +1 -0
- package/lib/module/components/Participants/ParticipantsItem.js +12 -3
- package/lib/module/components/Participants/ParticipantsItem.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsItemOptions.js +5 -4
- package/lib/module/components/Participants/ParticipantsItemOptions.js.map +1 -1
- package/lib/module/components/PeerSettingsModalContent.js +4 -3
- package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +12 -3
- package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
- package/lib/module/components/PeerVideoTile/PeerVideoTileView.js +2 -1
- package/lib/module/components/PeerVideoTile/PeerVideoTileView.js.map +1 -1
- package/lib/module/components/PollAndQuizVoting.js +11 -3
- package/lib/module/components/PollAndQuizVoting.js.map +1 -1
- package/lib/module/components/Preview.js +26 -5
- package/lib/module/components/Preview.js.map +1 -1
- package/lib/module/components/RoomSettingsModalContent.js +69 -4
- package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/module/components/styles.js +4 -0
- package/lib/module/components/styles.js.map +1 -1
- package/lib/module/redux/actionTypes.js +1 -0
- package/lib/module/redux/actionTypes.js.map +1 -1
- package/lib/module/redux/actions/index.js +4 -0
- package/lib/module/redux/actions/index.js.map +1 -1
- package/lib/module/redux/reducers/hmsStates.js +7 -1
- package/lib/module/redux/reducers/hmsStates.js.map +1 -1
- package/lib/module/utils/functions.js +1 -0
- package/lib/module/utils/functions.js.map +1 -1
- package/lib/module/utils/hooks.js +12 -18
- package/lib/module/utils/hooks.js.map +1 -1
- package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatFilterView.d.ts.map +1 -1
- package/lib/typescript/components/Footer.d.ts.map +1 -1
- package/lib/typescript/components/HMSManageNoiseCancellation.d.ts +3 -0
- package/lib/typescript/components/HMSManageNoiseCancellation.d.ts.map +1 -0
- package/lib/typescript/components/Participants/ParticipantsItem.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsItemOptions.d.ts.map +1 -1
- package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts +1 -0
- package/lib/typescript/components/PeerVideoTile/PeerNameAndNetwork.d.ts.map +1 -1
- package/lib/typescript/components/PeerVideoTile/PeerVideoTileView.d.ts.map +1 -1
- package/lib/typescript/components/PollAndQuizVoting.d.ts.map +1 -1
- package/lib/typescript/components/Preview.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/styles.d.ts +4 -0
- package/lib/typescript/components/styles.d.ts.map +1 -1
- package/lib/typescript/redux/actionTypes.d.ts +1 -0
- package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
- package/lib/typescript/redux/actions/index.d.ts +5 -1
- package/lib/typescript/redux/actions/index.d.ts.map +1 -1
- package/lib/typescript/redux/index.d.ts +1 -0
- package/lib/typescript/redux/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/hmsStates.d.ts +7 -2
- package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/index.d.ts +1 -0
- package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
- package/lib/typescript/utils/functions.d.ts +1 -0
- package/lib/typescript/utils/functions.d.ts.map +1 -1
- package/lib/typescript/utils/hooks.d.ts.map +1 -1
- package/package.json +65 -4
- package/src/HMSInstanceSetup.tsx +26 -5
- package/src/components/Chat/ChatFilterView.tsx +6 -2
- package/src/components/Footer.tsx +31 -5
- package/src/components/HMSManageNoiseCancellation.tsx +41 -0
- package/src/components/Participants/ParticipantsItem.tsx +29 -3
- package/src/components/Participants/ParticipantsItemOptions.tsx +9 -4
- package/src/components/PeerSettingsModalContent.tsx +14 -10
- package/src/components/PeerVideoTile/PeerNameAndNetwork.tsx +25 -9
- package/src/components/PeerVideoTile/PeerVideoTileView.tsx +2 -0
- package/src/components/PollAndQuizVoting.tsx +13 -1
- package/src/components/Preview.tsx +42 -3
- package/src/components/RoomSettingsModalContent.tsx +85 -1
- package/src/components/styles.ts +4 -0
- package/src/redux/actionTypes.ts +1 -0
- package/src/redux/actions/index.ts +8 -0
- package/src/redux/reducers/hmsStates.ts +15 -1
- package/src/utils/functions.ts +1 -0
- package/src/utils/hooks.ts +12 -12
|
@@ -2,10 +2,16 @@ import * as React from 'react';
|
|
|
2
2
|
import { useSelector } from 'react-redux';
|
|
3
3
|
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
|
|
4
4
|
import type { HMSLocalPeer, HMSPeer } from '@100mslive/react-native-hms';
|
|
5
|
+
import { HMSPeerType } from '@100mslive/react-native-hms';
|
|
5
6
|
|
|
6
7
|
import { isParticipantHostOrBroadcaster } from '../../utils/functions';
|
|
7
8
|
import { useHMSRoomStyleSheet } from '../../hooks-util';
|
|
8
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
AnswerPhoneIcon,
|
|
11
|
+
HandIcon,
|
|
12
|
+
NetworkQualityIcon,
|
|
13
|
+
ThreeDotsIcon,
|
|
14
|
+
} from '../../Icons';
|
|
9
15
|
import { Menu } from '../MenuModal';
|
|
10
16
|
import { ParticipantsItemOptions } from './ParticipantsItemOptions';
|
|
11
17
|
import type { RootState } from '../../redux';
|
|
@@ -45,6 +51,7 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
|
|
|
45
51
|
}));
|
|
46
52
|
|
|
47
53
|
const show3Dots = selfHostOrBroadcaster && !peer.isLocal;
|
|
54
|
+
const isSIPPeerType = peer.type === HMSPeerType.SIP;
|
|
48
55
|
|
|
49
56
|
const showOptions = () => setOptionsVisible(true);
|
|
50
57
|
|
|
@@ -52,7 +59,12 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
|
|
|
52
59
|
|
|
53
60
|
return (
|
|
54
61
|
<View style={styles.container}>
|
|
55
|
-
<Text
|
|
62
|
+
<Text
|
|
63
|
+
testID={TestIds.participant_name}
|
|
64
|
+
style={[styles.label, hmsRoomStyles.label]}
|
|
65
|
+
ellipsizeMode="middle"
|
|
66
|
+
numberOfLines={1}
|
|
67
|
+
>
|
|
56
68
|
{peer.name}
|
|
57
69
|
{peer.isLocal ? ' (You)' : null}
|
|
58
70
|
</Text>
|
|
@@ -70,7 +82,20 @@ const _ParticipantsItem: React.FC<ParticipantsItemProps> = ({
|
|
|
70
82
|
</View>
|
|
71
83
|
) : null}
|
|
72
84
|
|
|
73
|
-
{
|
|
85
|
+
{isSIPPeerType ? (
|
|
86
|
+
<View
|
|
87
|
+
style={[
|
|
88
|
+
styles.control,
|
|
89
|
+
styles.iconWrapper,
|
|
90
|
+
hmsRoomStyles.iconWrapper,
|
|
91
|
+
]}
|
|
92
|
+
>
|
|
93
|
+
<AnswerPhoneIcon style={styles.networkIcon} />
|
|
94
|
+
</View>
|
|
95
|
+
) : null}
|
|
96
|
+
|
|
97
|
+
{!isSIPPeerType &&
|
|
98
|
+
peer.networkQuality &&
|
|
74
99
|
peer.networkQuality.downlinkQuality >= 0 &&
|
|
75
100
|
peer.networkQuality.downlinkQuality < 4 ? (
|
|
76
101
|
<View
|
|
@@ -119,6 +144,7 @@ const styles = StyleSheet.create({
|
|
|
119
144
|
justifyContent: 'space-between',
|
|
120
145
|
},
|
|
121
146
|
label: {
|
|
147
|
+
flexShrink: 1,
|
|
122
148
|
fontSize: 14,
|
|
123
149
|
lineHeight: 20,
|
|
124
150
|
letterSpacing: 0.1,
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { StyleSheet, View } from 'react-native';
|
|
3
3
|
import { useSelector } from 'react-redux';
|
|
4
4
|
import type { HMSLocalPeer, HMSPeer } from '@100mslive/react-native-hms';
|
|
5
|
+
import { HMSPeerType } from '@100mslive/react-native-hms';
|
|
5
6
|
|
|
6
7
|
import {
|
|
7
8
|
useHMSInstance,
|
|
@@ -156,25 +157,29 @@ const _ParticipantsItemOptions: React.FC<ParticipantsItemOptionsProps> = ({
|
|
|
156
157
|
!insideHandRaiseGroup &&
|
|
157
158
|
localPeerCanMuteTrack &&
|
|
158
159
|
peerCanPublishAudio &&
|
|
159
|
-
peer.audioTrack?.isMute() === false
|
|
160
|
+
peer.audioTrack?.isMute() === false &&
|
|
161
|
+
peer.type === HMSPeerType.REGULAR;
|
|
160
162
|
|
|
161
163
|
const showUnmuteAudioOption =
|
|
162
164
|
!insideHandRaiseGroup &&
|
|
163
165
|
localPeerCanUnmuteTrack &&
|
|
164
166
|
peerCanPublishAudio &&
|
|
165
|
-
peer.audioTrack?.isMute()
|
|
167
|
+
peer.audioTrack?.isMute() &&
|
|
168
|
+
peer.type === HMSPeerType.REGULAR;
|
|
166
169
|
|
|
167
170
|
const showMuteVideoOption =
|
|
168
171
|
!insideHandRaiseGroup &&
|
|
169
172
|
localPeerCanMuteTrack &&
|
|
170
173
|
peerCanPublishVideo &&
|
|
171
|
-
peer.videoTrack?.isMute() === false
|
|
174
|
+
peer.videoTrack?.isMute() === false &&
|
|
175
|
+
peer.type === HMSPeerType.REGULAR;
|
|
172
176
|
|
|
173
177
|
const showUnmuteVideoOption =
|
|
174
178
|
!insideHandRaiseGroup &&
|
|
175
179
|
localPeerCanUnmuteTrack &&
|
|
176
180
|
peerCanPublishVideo &&
|
|
177
|
-
peer.videoTrack?.isMute()
|
|
181
|
+
peer.videoTrack?.isMute() &&
|
|
182
|
+
peer.type === HMSPeerType.REGULAR;
|
|
178
183
|
|
|
179
184
|
const showBringOnStageOptions =
|
|
180
185
|
offStageRoles && offStageRoles.includes(peer.role?.name || '');
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { StyleProp, TextStyle, TouchableOpacityProps } from 'react-native';
|
|
2
3
|
import {
|
|
3
|
-
View,
|
|
4
|
-
TouchableOpacity,
|
|
5
|
-
Text,
|
|
6
|
-
StyleSheet,
|
|
7
|
-
LayoutAnimation,
|
|
8
4
|
InteractionManager,
|
|
5
|
+
LayoutAnimation,
|
|
6
|
+
StyleSheet,
|
|
7
|
+
Text,
|
|
8
|
+
TouchableOpacity,
|
|
9
|
+
View,
|
|
9
10
|
} from 'react-native';
|
|
10
|
-
import type { StyleProp, TextStyle, TouchableOpacityProps } from 'react-native';
|
|
11
11
|
import { useDispatch, useSelector } from 'react-redux';
|
|
12
|
-
import { HMSTrack } from '@100mslive/react-native-hms';
|
|
12
|
+
import { HMSPeerType, HMSTrack } from '@100mslive/react-native-hms';
|
|
13
13
|
|
|
14
14
|
import type { RootState } from '../redux';
|
|
15
|
-
import { ModalTypes } from '../utils/types';
|
|
16
15
|
import type { PeerTrackNode } from '../utils/types';
|
|
16
|
+
import { ModalTypes } from '../utils/types';
|
|
17
17
|
import { setInsetViewMinimized } from '../redux/actions';
|
|
18
18
|
import { useHMSRoomStyle, useModalType } from '../hooks-util';
|
|
19
19
|
import {
|
|
@@ -157,7 +157,9 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
157
157
|
) : null}
|
|
158
158
|
|
|
159
159
|
{/* If Peer's Audio is Unmuted and Local Peer has mute Permissions */}
|
|
160
|
-
{!isPeerAudioMute &&
|
|
160
|
+
{!isPeerAudioMute &&
|
|
161
|
+
localPeerPermissions?.mute &&
|
|
162
|
+
peer.type === HMSPeerType.REGULAR ? (
|
|
161
163
|
<SettingItem
|
|
162
164
|
text={'Mute Audio'}
|
|
163
165
|
icon={<MicIcon muted={true} style={styles.customIcon} />}
|
|
@@ -180,7 +182,9 @@ export const PeerSettingsModalContent: React.FC<
|
|
|
180
182
|
) : null}
|
|
181
183
|
|
|
182
184
|
{/* If Peer's Video is Unmuted and Local Peer has mute Permissions */}
|
|
183
|
-
{!isPeerVideoMute &&
|
|
185
|
+
{!isPeerVideoMute &&
|
|
186
|
+
localPeerPermissions?.mute &&
|
|
187
|
+
peer.type === HMSPeerType.REGULAR ? (
|
|
184
188
|
<SettingItem
|
|
185
189
|
text={'Mute Video'}
|
|
186
190
|
icon={<CameraIcon muted={true} style={styles.customIcon} />}
|
|
@@ -3,12 +3,17 @@ import { StyleSheet, Text, View } from 'react-native';
|
|
|
3
3
|
import { HMSTrackSource } from '@100mslive/react-native-hms';
|
|
4
4
|
|
|
5
5
|
import { hexToRgbA } from '../../utils/theme';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
AnswerPhoneIcon,
|
|
8
|
+
NetworkQualityIcon,
|
|
9
|
+
ScreenShareIcon,
|
|
10
|
+
} from '../../Icons';
|
|
7
11
|
import { useHMSRoomStyleSheet } from '../../hooks-util';
|
|
8
12
|
import { TestIds } from '../../utils/constants';
|
|
9
13
|
|
|
10
14
|
export interface PeerNameAndNetworkProps {
|
|
11
15
|
name: string;
|
|
16
|
+
isSIPPeerType: boolean | undefined;
|
|
12
17
|
isLocal: boolean | undefined;
|
|
13
18
|
trackSource: HMSTrackSource | undefined;
|
|
14
19
|
networkQuality: number | undefined;
|
|
@@ -16,6 +21,7 @@ export interface PeerNameAndNetworkProps {
|
|
|
16
21
|
|
|
17
22
|
export const PeerNameAndNetwork: React.FC<PeerNameAndNetworkProps> = ({
|
|
18
23
|
name,
|
|
24
|
+
isSIPPeerType,
|
|
19
25
|
isLocal,
|
|
20
26
|
trackSource,
|
|
21
27
|
networkQuality,
|
|
@@ -41,24 +47,28 @@ export const PeerNameAndNetwork: React.FC<PeerNameAndNetworkProps> = ({
|
|
|
41
47
|
<View style={[styles.contentContainer, hmsRoomStyles.contentContainer]}>
|
|
42
48
|
{isScreenTrackSource ? (
|
|
43
49
|
<ScreenShareIcon style={styles.screenShareIcon} />
|
|
50
|
+
) : isSIPPeerType ? (
|
|
51
|
+
<AnswerPhoneIcon style={styles.phoneIcon} />
|
|
44
52
|
) : null}
|
|
45
53
|
|
|
46
54
|
<Text
|
|
47
55
|
testID={TestIds.tile_user_name}
|
|
48
56
|
style={[styles.name, hmsRoomStyles.name]}
|
|
49
57
|
numberOfLines={1}
|
|
50
|
-
ellipsizeMode={showTrackSource ? 'middle' : 'tail'}
|
|
58
|
+
ellipsizeMode={showTrackSource || isSIPPeerType ? 'middle' : 'tail'}
|
|
51
59
|
>
|
|
52
60
|
{name}
|
|
53
|
-
{isLocal
|
|
54
|
-
{showTrackSource
|
|
61
|
+
{isLocal && ' (You)'}
|
|
62
|
+
{showTrackSource && `'s ${trackSource}`}
|
|
55
63
|
</Text>
|
|
56
64
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
{isSIPPeerType ? null : (
|
|
66
|
+
<NetworkQualityIcon
|
|
67
|
+
testID={TestIds.tile_network_icon}
|
|
68
|
+
quality={networkQuality}
|
|
69
|
+
style={styles.networkIcon}
|
|
70
|
+
/>
|
|
71
|
+
)}
|
|
62
72
|
</View>
|
|
63
73
|
</View>
|
|
64
74
|
);
|
|
@@ -76,6 +86,7 @@ const styles = StyleSheet.create({
|
|
|
76
86
|
paddingVertical: 4,
|
|
77
87
|
paddingHorizontal: 8,
|
|
78
88
|
borderRadius: 8,
|
|
89
|
+
alignItems: 'center',
|
|
79
90
|
marginLeft: 8, // left offset
|
|
80
91
|
marginRight: 20 + 4 + 44, // network icon width + network icon left margin + 3 dots button width and horizontal margins
|
|
81
92
|
},
|
|
@@ -91,6 +102,11 @@ const styles = StyleSheet.create({
|
|
|
91
102
|
height: 20,
|
|
92
103
|
marginRight: 6,
|
|
93
104
|
},
|
|
105
|
+
phoneIcon: {
|
|
106
|
+
width: 16,
|
|
107
|
+
height: 16,
|
|
108
|
+
marginRight: 4,
|
|
109
|
+
},
|
|
94
110
|
networkIcon: {
|
|
95
111
|
marginLeft: 4,
|
|
96
112
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Pressable, StyleSheet, View } from 'react-native';
|
|
3
3
|
import {
|
|
4
|
+
HMSPeerType,
|
|
4
5
|
HMSTrackSource,
|
|
5
6
|
HMSTrackType,
|
|
6
7
|
HMSVideoViewMode,
|
|
@@ -194,6 +195,7 @@ export const _PeerVideoTileView = React.forwardRef<
|
|
|
194
195
|
{/* Handling showing Peer name */}
|
|
195
196
|
{insetMode || isPipModeActive ? null : (
|
|
196
197
|
<PeerNameAndNetwork
|
|
198
|
+
isSIPPeerType={peer.type === HMSPeerType.SIP}
|
|
197
199
|
name={peer.name}
|
|
198
200
|
isLocal={peer.isLocal}
|
|
199
201
|
trackSource={trackSource}
|
|
@@ -49,6 +49,18 @@ export const PollAndQuizVoting: React.FC<PollAndQuizVotingProps> = ({
|
|
|
49
49
|
}
|
|
50
50
|
return null;
|
|
51
51
|
});
|
|
52
|
+
const pollId = selectedPoll?.pollId;
|
|
53
|
+
const localPeerPollInitiator = useSelector((state: RootState) => {
|
|
54
|
+
if (!pollId) return null;
|
|
55
|
+
const localPeerUserId = state.hmsStates.localPeer?.customerUserID;
|
|
56
|
+
const pollInitiatorUserID =
|
|
57
|
+
state.polls.polls[pollId]?.createdBy?.customerUserID;
|
|
58
|
+
return (
|
|
59
|
+
localPeerUserId &&
|
|
60
|
+
pollInitiatorUserID &&
|
|
61
|
+
localPeerUserId === pollInitiatorUserID
|
|
62
|
+
);
|
|
63
|
+
});
|
|
52
64
|
const canCreateOrEndPoll = useSelector((state: RootState) => {
|
|
53
65
|
const permissions = state.hmsStates.localPeer?.role?.permissions;
|
|
54
66
|
return permissions?.pollWrite;
|
|
@@ -187,7 +199,7 @@ export const PollAndQuizVoting: React.FC<PollAndQuizVotingProps> = ({
|
|
|
187
199
|
{selectedPoll &&
|
|
188
200
|
selectedPoll.type === HMSPollType.quiz &&
|
|
189
201
|
selectedPoll.state === HMSPollState.stopped &&
|
|
190
|
-
!
|
|
202
|
+
!localPeerPollInitiator ? (
|
|
191
203
|
<React.Fragment>
|
|
192
204
|
<VoterParticipationSummary pollId={selectedPoll.pollId} />
|
|
193
205
|
|
|
@@ -20,7 +20,11 @@ import { HMSPreviewTile } from './HMSPreviewTile';
|
|
|
20
20
|
import { HMSPreviewTitle } from './HMSPreviewTitle';
|
|
21
21
|
import { HMSManageAudioOutput } from './HMSManageAudioOutput';
|
|
22
22
|
import { HMSPreviewNetworkQuality } from './HMSPreviewNetworkQuality';
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
useCanPublishAudio,
|
|
25
|
+
useCanPublishVideo,
|
|
26
|
+
useHMSActions,
|
|
27
|
+
} from '../hooks-sdk';
|
|
24
28
|
import { HMSPreviewHLSLiveIndicator } from './HMSPreviewHLSLiveIndicator';
|
|
25
29
|
import { CompanyLogo } from './CompanyLogo';
|
|
26
30
|
import {
|
|
@@ -30,6 +34,9 @@ import {
|
|
|
30
34
|
} from '../hooks-util';
|
|
31
35
|
import { HMSKeyboardAvoidingView } from './HMSKeyboardAvoidingView';
|
|
32
36
|
import { hexToRgbA } from '../utils/theme';
|
|
37
|
+
import { HMSManageNoiseCancellation } from './HMSManageNoiseCancellation';
|
|
38
|
+
import { useSelector } from 'react-redux';
|
|
39
|
+
import type { RootState } from '../redux';
|
|
33
40
|
|
|
34
41
|
const backButtonEdges = ['top'] as const;
|
|
35
42
|
const headerEdges = ['top', 'left', 'right'] as const;
|
|
@@ -88,6 +95,35 @@ export const Preview = ({
|
|
|
88
95
|
setupAudioVideoOnPreview().then((r) => console.log(r));
|
|
89
96
|
}, []);
|
|
90
97
|
|
|
98
|
+
const canPublishAudio = useCanPublishAudio();
|
|
99
|
+
const isLocalAudioMuted = useSelector(
|
|
100
|
+
(state: RootState) => state.hmsStates.isLocalAudioMuted
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
const [isNCAvailable, setIsNCAvailable] = React.useState(false);
|
|
104
|
+
|
|
105
|
+
const noiseCancellationPlugin = useSelector(
|
|
106
|
+
(state: RootState) => state.hmsStates.noiseCancellationPlugin
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (noiseCancellationPlugin) {
|
|
111
|
+
let isMounted = true;
|
|
112
|
+
|
|
113
|
+
noiseCancellationPlugin.isNoiseCancellationAvailable().then((r) => {
|
|
114
|
+
if (isMounted) {
|
|
115
|
+
setIsNCAvailable(r);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return () => {
|
|
119
|
+
isMounted = false;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}, [noiseCancellationPlugin]);
|
|
123
|
+
|
|
124
|
+
const showNoiseCancellationButton =
|
|
125
|
+
canPublishAudio && !isLocalAudioMuted && isNCAvailable;
|
|
126
|
+
|
|
91
127
|
return (
|
|
92
128
|
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
|
|
93
129
|
<View style={[styles.container, hmsRoomStyles.container]}>
|
|
@@ -138,13 +174,15 @@ export const Preview = ({
|
|
|
138
174
|
<View style={styles.micAndCameraControls}>
|
|
139
175
|
<HMSManageLocalAudio />
|
|
140
176
|
|
|
141
|
-
<View style={styles.
|
|
177
|
+
<View style={styles.manageLocalButtonWrapper}>
|
|
142
178
|
<HMSManageLocalVideo />
|
|
143
179
|
</View>
|
|
144
180
|
|
|
145
181
|
<HMSManageCameraRotation />
|
|
146
182
|
</View>
|
|
147
183
|
|
|
184
|
+
{showNoiseCancellationButton && <HMSManageNoiseCancellation />}
|
|
185
|
+
|
|
148
186
|
<HMSManageAudioOutput />
|
|
149
187
|
</View>
|
|
150
188
|
)}
|
|
@@ -201,8 +239,9 @@ const styles = StyleSheet.create({
|
|
|
201
239
|
},
|
|
202
240
|
micAndCameraControls: {
|
|
203
241
|
flexDirection: 'row',
|
|
242
|
+
alignItems: 'center',
|
|
204
243
|
},
|
|
205
|
-
|
|
244
|
+
manageLocalButtonWrapper: {
|
|
206
245
|
marginHorizontal: 16,
|
|
207
246
|
},
|
|
208
247
|
joinButtonRow: {
|
|
@@ -16,10 +16,12 @@ import {
|
|
|
16
16
|
PollVoteIcon,
|
|
17
17
|
RecordingIcon,
|
|
18
18
|
ScreenShareIcon,
|
|
19
|
+
WaveIcon,
|
|
19
20
|
} from '../Icons';
|
|
20
21
|
import { BottomSheet, useBottomSheetActions } from './BottomSheet';
|
|
21
22
|
import {
|
|
22
23
|
isPublishingAllowed,
|
|
24
|
+
useHMSConferencingScreenConfig,
|
|
23
25
|
useHMSLayoutConfig,
|
|
24
26
|
useHMSRoomColorPalette,
|
|
25
27
|
useHMSRoomStyleSheet,
|
|
@@ -27,6 +29,7 @@ import {
|
|
|
27
29
|
useStartRecording,
|
|
28
30
|
} from '../hooks-util';
|
|
29
31
|
import {
|
|
32
|
+
useCanPublishAudio,
|
|
30
33
|
useCanPublishScreen,
|
|
31
34
|
useHMSActions,
|
|
32
35
|
useIsAnyStreamingOn,
|
|
@@ -183,6 +186,72 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
183
186
|
};
|
|
184
187
|
// #endregion
|
|
185
188
|
|
|
189
|
+
// #region Noise Cancellation Plugin
|
|
190
|
+
const noiseCancellationPlugin = useSelector(
|
|
191
|
+
(state: RootState) => state.hmsStates.noiseCancellationPlugin
|
|
192
|
+
);
|
|
193
|
+
const [isNoiseCancellationEnabled, setIsNoiseCancellationEnabled] =
|
|
194
|
+
React.useState(false);
|
|
195
|
+
const [isNoiseCancellationAvailable, setIsNoiseCancellationAvailable] =
|
|
196
|
+
React.useState(false);
|
|
197
|
+
|
|
198
|
+
const canPublishAudio = useCanPublishAudio();
|
|
199
|
+
|
|
200
|
+
const isLocalAudioMuted = useSelector(
|
|
201
|
+
(state: RootState) => state.hmsStates.isLocalAudioMuted
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
const showNoiseCancellationButton =
|
|
205
|
+
canPublishAudio && isNoiseCancellationAvailable;
|
|
206
|
+
|
|
207
|
+
React.useEffect(() => {
|
|
208
|
+
if (noiseCancellationPlugin) {
|
|
209
|
+
let mounted = true;
|
|
210
|
+
|
|
211
|
+
Promise.all(
|
|
212
|
+
[
|
|
213
|
+
noiseCancellationPlugin.isEnabled(),
|
|
214
|
+
noiseCancellationPlugin.isNoiseCancellationAvailable(),
|
|
215
|
+
].map((promise) =>
|
|
216
|
+
promise
|
|
217
|
+
.then((value) => ({ status: 'fulfilled' as const, value }))
|
|
218
|
+
.catch((reason) => ({ status: 'rejected' as const, reason }))
|
|
219
|
+
)
|
|
220
|
+
).then((results) => {
|
|
221
|
+
const [isEnabledResult, isAvailableResult] = results;
|
|
222
|
+
if (mounted) {
|
|
223
|
+
if (isEnabledResult && isEnabledResult.status === 'fulfilled') {
|
|
224
|
+
setIsNoiseCancellationEnabled(isEnabledResult.value);
|
|
225
|
+
}
|
|
226
|
+
if (isAvailableResult && isAvailableResult.status === 'fulfilled') {
|
|
227
|
+
setIsNoiseCancellationAvailable(isAvailableResult.value);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
return () => {
|
|
233
|
+
mounted = false;
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}, [noiseCancellationPlugin]);
|
|
237
|
+
|
|
238
|
+
const handleNoiseCancellation = () => {
|
|
239
|
+
// Register callback to be called when bottom sheet is hiddden
|
|
240
|
+
registerOnModalHideAction(() => {
|
|
241
|
+
if (!noiseCancellationPlugin || !isNoiseCancellationAvailable) return;
|
|
242
|
+
|
|
243
|
+
if (isNoiseCancellationEnabled) {
|
|
244
|
+
noiseCancellationPlugin.disable();
|
|
245
|
+
} else {
|
|
246
|
+
noiseCancellationPlugin.enable();
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// Close the current bottom sheet
|
|
251
|
+
closeRoomSettingsModal();
|
|
252
|
+
};
|
|
253
|
+
// #endregion
|
|
254
|
+
|
|
186
255
|
const changeName = () => {
|
|
187
256
|
// Register callback to be called when bottom sheet is hiddden
|
|
188
257
|
registerOnModalHideAction(() => {
|
|
@@ -207,6 +276,10 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
207
276
|
!!layoutConfig?.screens?.conferencing?.default?.elements?.brb
|
|
208
277
|
);
|
|
209
278
|
|
|
279
|
+
const canRaiseHand = useHMSConferencingScreenConfig(
|
|
280
|
+
(confScreenConfig) => !!confScreenConfig?.elements?.hand_raise
|
|
281
|
+
);
|
|
282
|
+
|
|
210
283
|
const isOnStage = useHMSLayoutConfig((layoutConfig) => {
|
|
211
284
|
return !!layoutConfig?.screens?.conferencing?.default?.elements
|
|
212
285
|
?.on_stage_exp;
|
|
@@ -217,7 +290,7 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
217
290
|
return (allowed && allowed.length > 0) ?? false;
|
|
218
291
|
});
|
|
219
292
|
|
|
220
|
-
const showHandRaiseIcon = !isOnStage && allowedToPublish;
|
|
293
|
+
const showHandRaiseIcon = canRaiseHand && !isOnStage && allowedToPublish;
|
|
221
294
|
|
|
222
295
|
return (
|
|
223
296
|
<View>
|
|
@@ -321,6 +394,17 @@ export const RoomSettingsModalContent: React.FC<
|
|
|
321
394
|
isActive: false,
|
|
322
395
|
hide: !canReadOrWritePoll,
|
|
323
396
|
},
|
|
397
|
+
{
|
|
398
|
+
id: 'noise-cancellation',
|
|
399
|
+
icon: <WaveIcon style={{ width: 20, height: 20 }} />,
|
|
400
|
+
label: isNoiseCancellationEnabled
|
|
401
|
+
? 'Noise Reduced'
|
|
402
|
+
: 'Reduce Noise',
|
|
403
|
+
pressHandler: handleNoiseCancellation,
|
|
404
|
+
isActive: isNoiseCancellationEnabled,
|
|
405
|
+
hide: !showNoiseCancellationButton,
|
|
406
|
+
disabled: isLocalAudioMuted,
|
|
407
|
+
},
|
|
324
408
|
].filter((itm) => !itm.hide),
|
|
325
409
|
true
|
|
326
410
|
).map((itm, idx) => {
|
package/src/components/styles.ts
CHANGED
package/src/redux/actionTypes.ts
CHANGED
|
@@ -185,6 +185,7 @@ export enum HmsStateActionTypes {
|
|
|
185
185
|
REPLACE_PARTICIPANTS_LIST = 'REPLACE_PARTICIPANTS_LIST',
|
|
186
186
|
SET_ACTIVE_SPEAKERS = 'SET_ACTIVE_SPEAKERS',
|
|
187
187
|
SET_RECONNECTING = 'SET_RECONNECTING',
|
|
188
|
+
SET_NOISE_CANCELLATION_PLUGIN = 'SET_NOISE_CANCELLATION_PLUGIN',
|
|
188
189
|
SET_INITIAL_ROLE = 'SET_INITIAL_ROLE',
|
|
189
190
|
}
|
|
190
191
|
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
HMSLocalAudioStats,
|
|
4
4
|
HMSLocalVideoStats,
|
|
5
5
|
HMSMessage,
|
|
6
|
+
HMSNoiseCancellationPlugin,
|
|
6
7
|
HMSPeer,
|
|
7
8
|
HMSPoll,
|
|
8
9
|
HMSPollQuestion,
|
|
@@ -431,6 +432,13 @@ export const setReconnecting = (reconnecting: boolean) => ({
|
|
|
431
432
|
reconnecting,
|
|
432
433
|
});
|
|
433
434
|
|
|
435
|
+
export const setNoiseCancellationPlugin = (
|
|
436
|
+
noiseCancellationPlugin: HMSNoiseCancellationPlugin
|
|
437
|
+
) => ({
|
|
438
|
+
type: HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN,
|
|
439
|
+
noiseCancellationPlugin,
|
|
440
|
+
});
|
|
441
|
+
|
|
434
442
|
export const setHandleBackButton = (handleBackButton?: boolean) => ({
|
|
435
443
|
type: actionTypes.SET_HANDLE_BACK_BUTTON,
|
|
436
444
|
payload: { handleBackButton },
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
HMSLocalPeer,
|
|
3
|
+
HMSNoiseCancellationPlugin,
|
|
3
4
|
HMSPeer,
|
|
4
5
|
HMSRole,
|
|
5
6
|
HMSRoleChangeRequest,
|
|
@@ -29,7 +30,8 @@ type ActionType =
|
|
|
29
30
|
| AddUpdateParticipant
|
|
30
31
|
| ReplaceParticipantsList
|
|
31
32
|
| SetActiveSpeakers
|
|
32
|
-
| SetReconnecting
|
|
33
|
+
| SetReconnecting
|
|
34
|
+
| SetNoiseCancellationPlugin;
|
|
33
35
|
|
|
34
36
|
type SetRoomAction = {
|
|
35
37
|
type: HmsStateActionTypes.SET_ROOM_STATE;
|
|
@@ -131,6 +133,11 @@ type SetReconnecting = {
|
|
|
131
133
|
reconnecting: boolean;
|
|
132
134
|
};
|
|
133
135
|
|
|
136
|
+
type SetNoiseCancellationPlugin = {
|
|
137
|
+
type: HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN;
|
|
138
|
+
noiseCancellationPlugin: HMSNoiseCancellationPlugin;
|
|
139
|
+
};
|
|
140
|
+
|
|
134
141
|
type IntialStateType = {
|
|
135
142
|
isLocalAudioMuted: boolean | undefined;
|
|
136
143
|
isLocalVideoMuted: boolean | undefined;
|
|
@@ -145,6 +152,7 @@ type IntialStateType = {
|
|
|
145
152
|
previewPeersList: HMSPeer[];
|
|
146
153
|
layoutConfig: Layout[] | null;
|
|
147
154
|
roleChangeRequest: HMSRoleChangeRequest | null;
|
|
155
|
+
noiseCancellationPlugin: HMSNoiseCancellationPlugin | null;
|
|
148
156
|
};
|
|
149
157
|
|
|
150
158
|
const INITIAL_STATE: IntialStateType = {
|
|
@@ -161,6 +169,7 @@ const INITIAL_STATE: IntialStateType = {
|
|
|
161
169
|
previewPeersList: [],
|
|
162
170
|
layoutConfig: null,
|
|
163
171
|
roleChangeRequest: null,
|
|
172
|
+
noiseCancellationPlugin: null,
|
|
164
173
|
};
|
|
165
174
|
|
|
166
175
|
const hmsStatesReducer = (
|
|
@@ -557,6 +566,11 @@ const hmsStatesReducer = (
|
|
|
557
566
|
...state,
|
|
558
567
|
reconnecting: action.reconnecting,
|
|
559
568
|
};
|
|
569
|
+
case HmsStateActionTypes.SET_NOISE_CANCELLATION_PLUGIN:
|
|
570
|
+
return {
|
|
571
|
+
...state,
|
|
572
|
+
noiseCancellationPlugin: action.noiseCancellationPlugin,
|
|
573
|
+
};
|
|
560
574
|
case HmsStateActionTypes.CLEAR_STATES:
|
|
561
575
|
return INITIAL_STATE;
|
|
562
576
|
default:
|
package/src/utils/functions.ts
CHANGED
|
@@ -445,6 +445,7 @@ export function groupIntoPairs(totalNumber: number) {
|
|
|
445
445
|
|
|
446
446
|
/**
|
|
447
447
|
* @param list array of items
|
|
448
|
+
* @param fill boolean to fill the last triplet with `undefined` if it has less than 3 items
|
|
448
449
|
* @returns list of triplets
|
|
449
450
|
*
|
|
450
451
|
* Example: If list is `[a, b, c, d]`, then output will be `[ [a, b, c], [d] ]`
|
package/src/utils/hooks.ts
CHANGED
|
@@ -111,9 +111,16 @@ export const useFetchLeaderboardResponse = (
|
|
|
111
111
|
const dispatch = useDispatch();
|
|
112
112
|
const hmsInstance = useHMSInstance();
|
|
113
113
|
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
const localPeerPollInitiator = useSelector((state: RootState) => {
|
|
115
|
+
if (!pollId) return null;
|
|
116
|
+
const localPeerUserId = state.hmsStates.localPeer?.customerUserID;
|
|
117
|
+
const pollInitiatorUserID =
|
|
118
|
+
state.polls.polls[pollId]?.createdBy?.customerUserID;
|
|
119
|
+
return (
|
|
120
|
+
localPeerUserId &&
|
|
121
|
+
pollInitiatorUserID &&
|
|
122
|
+
localPeerUserId === pollInitiatorUserID
|
|
123
|
+
);
|
|
117
124
|
});
|
|
118
125
|
|
|
119
126
|
const leaderboardData = useSelector((state: RootState) => {
|
|
@@ -134,7 +141,7 @@ export const useFetchLeaderboardResponse = (
|
|
|
134
141
|
pollId,
|
|
135
142
|
5,
|
|
136
143
|
1, // Indexing starts from 1
|
|
137
|
-
!
|
|
144
|
+
!localPeerPollInitiator // fetchCurrentUser only if user is voter, and not poll initiator
|
|
138
145
|
);
|
|
139
146
|
if (mounted) {
|
|
140
147
|
dispatch(addLeaderboard(pollId, response));
|
|
@@ -146,7 +153,7 @@ export const useFetchLeaderboardResponse = (
|
|
|
146
153
|
return () => {
|
|
147
154
|
mounted = false;
|
|
148
155
|
};
|
|
149
|
-
}, [pollId, leaderboardDataExist,
|
|
156
|
+
}, [pollId, leaderboardDataExist, localPeerPollInitiator]);
|
|
150
157
|
|
|
151
158
|
return leaderboardData;
|
|
152
159
|
};
|
|
@@ -167,10 +174,6 @@ export const useLeaderboardSummaryData = (
|
|
|
167
174
|
localPeerUserId === pollInitiatorUserID
|
|
168
175
|
);
|
|
169
176
|
});
|
|
170
|
-
const canCreateOrEndPoll = useSelector((state: RootState) => {
|
|
171
|
-
const permissions = state.hmsStates.localPeer?.role?.permissions;
|
|
172
|
-
return permissions?.pollWrite;
|
|
173
|
-
});
|
|
174
177
|
|
|
175
178
|
const leaderboardData = useSelector((state: RootState) => {
|
|
176
179
|
if (!pollId) return null;
|
|
@@ -237,9 +240,6 @@ export const useLeaderboardSummaryData = (
|
|
|
237
240
|
: null;
|
|
238
241
|
|
|
239
242
|
const voterSummaryData = useMemo(() => {
|
|
240
|
-
if (!localLeaderboardEntry || canCreateOrEndPoll) {
|
|
241
|
-
return null;
|
|
242
|
-
}
|
|
243
243
|
return [
|
|
244
244
|
[
|
|
245
245
|
{
|