@100mslive/react-native-room-kit 1.0.6 → 1.0.8
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/HMSRoomSetup.js +4 -1
- package/lib/commonjs/HMSRoomSetup.js.map +1 -1
- package/lib/commonjs/Icons/Chat/assets/chat-on.png +0 -0
- package/lib/commonjs/Icons/Chat/assets/chat-on@2x.png +0 -0
- package/lib/commonjs/Icons/Chat/assets/chat-on@3x.png +0 -0
- package/lib/commonjs/Icons/Chat/index.js +4 -3
- package/lib/commonjs/Icons/Chat/index.js.map +1 -1
- package/lib/commonjs/Icons/NoEntry/assets/no-entry.png +0 -0
- package/lib/commonjs/Icons/NoEntry/assets/no-entry@2x.png +0 -0
- package/lib/commonjs/Icons/NoEntry/assets/no-entry@3x.png +0 -0
- package/lib/commonjs/Icons/NoEntry/index.js +33 -0
- package/lib/commonjs/Icons/NoEntry/index.js.map +1 -0
- package/lib/commonjs/Icons/PauseCircle/assets/pause-circle.png +0 -0
- package/lib/commonjs/Icons/PauseCircle/assets/pause-circle@2x.png +0 -0
- package/lib/commonjs/Icons/PauseCircle/assets/pause-circle@3x.png +0 -0
- package/lib/commonjs/Icons/PauseCircle/index.js +29 -0
- package/lib/commonjs/Icons/PauseCircle/index.js.map +1 -0
- package/lib/commonjs/Icons/Pin/assets/unpin.png +0 -0
- package/lib/commonjs/Icons/Pin/assets/unpin@2x.png +0 -0
- package/lib/commonjs/Icons/Pin/assets/unpin@3x.png +0 -0
- package/lib/commonjs/Icons/Pin/index.js +2 -1
- package/lib/commonjs/Icons/Pin/index.js.map +1 -1
- package/lib/commonjs/Icons/Recording/assets/recording-pause.png +0 -0
- package/lib/commonjs/Icons/Recording/assets/recording-pause@2x.png +0 -0
- package/lib/commonjs/Icons/Recording/assets/recording-pause@3x.png +0 -0
- package/lib/commonjs/Icons/Recording/index.js +1 -1
- package/lib/commonjs/Icons/Recording/index.js.map +1 -1
- package/lib/commonjs/Icons/index.js +22 -0
- package/lib/commonjs/Icons/index.js.map +1 -1
- package/lib/commonjs/components/AnimatedFooter.js +5 -3
- package/lib/commonjs/components/AnimatedFooter.js.map +1 -1
- package/lib/commonjs/components/AnimatedHLSFooter.js +4 -9
- package/lib/commonjs/components/AnimatedHLSFooter.js.map +1 -1
- package/lib/commonjs/components/AnimatedHeader.js +17 -5
- package/lib/commonjs/components/AnimatedHeader.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +11 -5
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js +36 -0
- package/lib/commonjs/components/Chat/ChatFilterBottomSheet.js.map +1 -0
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js +90 -23
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js +2 -1
- package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterItem.js +10 -7
- package/lib/commonjs/components/Chat/ChatFilterItem.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatFilterView.js +54 -45
- package/lib/commonjs/components/Chat/ChatFilterView.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatList.js +13 -6
- package/lib/commonjs/components/Chat/ChatList.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMessage.js +79 -7
- package/lib/commonjs/components/Chat/ChatMessage.js.map +1 -1
- package/lib/commonjs/components/Chat/ChatMoreActionsModal.js +61 -0
- package/lib/commonjs/components/Chat/ChatMoreActionsModal.js.map +1 -0
- package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js +63 -0
- package/lib/commonjs/components/Chat/ChatMoreActionsSheetView.js.map +1 -0
- package/lib/commonjs/components/Chat/ChatMoreActionsView.js +83 -0
- package/lib/commonjs/components/Chat/ChatMoreActionsView.js.map +1 -0
- package/lib/commonjs/components/Chat/ChatPaused.js +86 -0
- package/lib/commonjs/components/Chat/ChatPaused.js.map +1 -0
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js +34 -0
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheet.js.map +1 -0
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js +66 -0
- package/lib/commonjs/components/Chat/MessageOptionsBottomSheetView.js.map +1 -0
- package/lib/commonjs/components/Chat/MessageOptionsView.js +188 -0
- package/lib/commonjs/components/Chat/MessageOptionsView.js.map +1 -0
- package/lib/commonjs/components/Chat/PeerBlockedFromChat.js +47 -0
- package/lib/commonjs/components/Chat/PeerBlockedFromChat.js.map +1 -0
- package/lib/commonjs/components/Chat/PinnedMessages.js +297 -0
- package/lib/commonjs/components/Chat/PinnedMessages.js.map +1 -0
- package/lib/commonjs/components/Chat/index.js +4 -4
- package/lib/commonjs/components/Chat/index.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +11 -10
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js +21 -2
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js +8 -4
- package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
- package/lib/commonjs/components/ChatAndParticipants/ChatView.js +21 -2
- package/lib/commonjs/components/ChatAndParticipants/ChatView.js.map +1 -1
- package/lib/commonjs/components/DisplayView.js +4 -11
- package/lib/commonjs/components/DisplayView.js.map +1 -1
- package/lib/commonjs/components/EndRoomModal.js +1 -2
- package/lib/commonjs/components/EndRoomModal.js.map +1 -1
- package/lib/commonjs/components/EndRoomModalContent.js +6 -8
- package/lib/commonjs/components/EndRoomModalContent.js.map +1 -1
- package/lib/commonjs/components/Footer.js +12 -18
- package/lib/commonjs/components/Footer.js.map +1 -1
- package/lib/commonjs/components/GridView.js +31 -1
- package/lib/commonjs/components/GridView.js.map +1 -1
- package/lib/commonjs/components/HLSFooter.js +3 -1
- package/lib/commonjs/components/HLSFooter.js.map +1 -1
- package/lib/commonjs/components/HLSView.js +8 -6
- package/lib/commonjs/components/HLSView.js.map +1 -1
- package/lib/commonjs/components/HMSBaseButton.js +10 -2
- package/lib/commonjs/components/HMSBaseButton.js.map +1 -1
- package/lib/commonjs/components/HMSDangerButton.js +4 -2
- package/lib/commonjs/components/HMSDangerButton.js.map +1 -1
- package/lib/commonjs/components/HMSHLSMessage.js +86 -1
- package/lib/commonjs/components/HMSHLSMessage.js.map +1 -1
- package/lib/commonjs/components/HMSHLSMessageList.js +2 -2
- package/lib/commonjs/components/HMSHLSMessageList.js.map +1 -1
- package/lib/commonjs/components/HMSHandRaiseNotification.js +6 -3
- package/lib/commonjs/components/HMSHandRaiseNotification.js.map +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js +2 -0
- package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js.map +1 -1
- package/lib/commonjs/components/HMSKeyboardAvoidingView.js +8 -2
- package/lib/commonjs/components/HMSKeyboardAvoidingView.js.map +1 -1
- package/lib/commonjs/components/HMSLiveIndicator.js +5 -60
- package/lib/commonjs/components/HMSLiveIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSLiveViewerCount.js +79 -0
- package/lib/commonjs/components/HMSLiveViewerCount.js.map +1 -0
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js +2 -1
- package/lib/commonjs/components/HMSLocalScreenshareNotification.js.map +1 -1
- package/lib/commonjs/components/HMSNotification.js +31 -4
- package/lib/commonjs/components/HMSNotification.js.map +1 -1
- package/lib/commonjs/components/HMSNotifications.js +9 -2
- package/lib/commonjs/components/HMSNotifications.js.map +1 -1
- package/lib/commonjs/components/HMSOverlayChatView.js +55 -4
- package/lib/commonjs/components/HMSOverlayChatView.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewEditName.js +6 -1
- package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +2 -5
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSPrimaryButton.js +4 -2
- package/lib/commonjs/components/HMSPrimaryButton.js.map +1 -1
- package/lib/commonjs/components/HMSRecordingIndicator.js +12 -7
- package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -1
- package/lib/commonjs/components/HMSRoomOptions.js +3 -6
- package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
- package/lib/commonjs/components/HMSTerminalErrorNotification.js +6 -2
- package/lib/commonjs/components/HMSTerminalErrorNotification.js.map +1 -1
- package/lib/commonjs/components/Header.js +11 -3
- package/lib/commonjs/components/Header.js.map +1 -1
- package/lib/commonjs/components/LeaveRoomBottomSheet.js +5 -11
- package/lib/commonjs/components/LeaveRoomBottomSheet.js.map +1 -1
- package/lib/commonjs/components/Meeting.js +5 -13
- package/lib/commonjs/components/Meeting.js.map +1 -1
- package/lib/commonjs/components/MeetingScreenContent.js +46 -48
- package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
- package/lib/commonjs/components/MiniView.js.map +1 -1
- package/lib/commonjs/components/Modals.js +9 -12
- package/lib/commonjs/components/Modals.js.map +1 -1
- package/lib/commonjs/components/OverlayedViews.js +6 -2
- package/lib/commonjs/components/OverlayedViews.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsItemOptions.js +5 -1
- package/lib/commonjs/components/Participants/ParticipantsItemOptions.js.map +1 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js +2 -1
- package/lib/commonjs/components/PeerSettingsModalContent.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/PressableIcon.js +6 -2
- package/lib/commonjs/components/PressableIcon.js.map +1 -1
- package/lib/commonjs/components/Preview.js +14 -1
- package/lib/commonjs/components/Preview.js.map +1 -1
- package/lib/commonjs/components/PreviewForRoleChangeModal.js +5 -4
- package/lib/commonjs/components/PreviewForRoleChangeModal.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js +34 -9
- package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js +2 -4
- package/lib/commonjs/components/RoomSettingsModalDebugModeContent.js.map +1 -1
- package/lib/commonjs/components/WebrtcView.js +37 -2
- package/lib/commonjs/components/WebrtcView.js.map +1 -1
- package/lib/commonjs/hooks-sdk-selectors.js +16 -1
- package/lib/commonjs/hooks-sdk-selectors.js.map +1 -1
- package/lib/commonjs/hooks-sdk.js +27 -1
- package/lib/commonjs/hooks-sdk.js.map +1 -1
- package/lib/commonjs/hooks-util-selectors.js +3 -2
- package/lib/commonjs/hooks-util-selectors.js.map +1 -1
- package/lib/commonjs/hooks-util.js +466 -89
- package/lib/commonjs/hooks-util.js.map +1 -1
- package/lib/commonjs/redux/actionTypes.js +18 -3
- package/lib/commonjs/redux/actionTypes.js.map +1 -1
- package/lib/commonjs/redux/actions/index.js +51 -4
- package/lib/commonjs/redux/actions/index.js.map +1 -1
- package/lib/commonjs/redux/reducers/appState.js +49 -1
- package/lib/commonjs/redux/reducers/appState.js.map +1 -1
- package/lib/commonjs/redux/reducers/chatWindow.js +1 -2
- package/lib/commonjs/redux/reducers/chatWindow.js.map +1 -1
- package/lib/commonjs/redux/reducers/message.js +17 -4
- package/lib/commonjs/redux/reducers/message.js.map +1 -1
- package/lib/commonjs/types.js +1 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/types.js +6 -3
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils.js +2 -2
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/HMSRoomSetup.js +5 -2
- package/lib/module/HMSRoomSetup.js.map +1 -1
- package/lib/module/Icons/Chat/assets/chat-on.png +0 -0
- package/lib/module/Icons/Chat/assets/chat-on@2x.png +0 -0
- package/lib/module/Icons/Chat/assets/chat-on@3x.png +0 -0
- package/lib/module/Icons/Chat/index.js +4 -3
- package/lib/module/Icons/Chat/index.js.map +1 -1
- package/lib/module/Icons/NoEntry/assets/no-entry.png +0 -0
- package/lib/module/Icons/NoEntry/assets/no-entry@2x.png +0 -0
- package/lib/module/Icons/NoEntry/assets/no-entry@3x.png +0 -0
- package/lib/module/Icons/NoEntry/index.js +25 -0
- package/lib/module/Icons/NoEntry/index.js.map +1 -0
- package/lib/module/Icons/PauseCircle/assets/pause-circle.png +0 -0
- package/lib/module/Icons/PauseCircle/assets/pause-circle@2x.png +0 -0
- package/lib/module/Icons/PauseCircle/assets/pause-circle@3x.png +0 -0
- package/lib/module/Icons/PauseCircle/index.js +21 -0
- package/lib/module/Icons/PauseCircle/index.js.map +1 -0
- package/lib/module/Icons/Pin/assets/unpin.png +0 -0
- package/lib/module/Icons/Pin/assets/unpin@2x.png +0 -0
- package/lib/module/Icons/Pin/assets/unpin@3x.png +0 -0
- package/lib/module/Icons/Pin/index.js +2 -1
- package/lib/module/Icons/Pin/index.js.map +1 -1
- package/lib/module/Icons/Recording/assets/recording-pause.png +0 -0
- package/lib/module/Icons/Recording/assets/recording-pause@2x.png +0 -0
- package/lib/module/Icons/Recording/assets/recording-pause@3x.png +0 -0
- package/lib/module/Icons/Recording/index.js +1 -1
- package/lib/module/Icons/Recording/index.js.map +1 -1
- package/lib/module/Icons/index.js +2 -0
- package/lib/module/Icons/index.js.map +1 -1
- package/lib/module/components/AnimatedFooter.js +5 -3
- package/lib/module/components/AnimatedFooter.js.map +1 -1
- package/lib/module/components/AnimatedHLSFooter.js +5 -10
- package/lib/module/components/AnimatedHLSFooter.js.map +1 -1
- package/lib/module/components/AnimatedHeader.js +18 -6
- package/lib/module/components/AnimatedHeader.js.map +1 -1
- package/lib/module/components/BottomSheet.js +12 -6
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/Chat/ChatFilterBottomSheet.js +28 -0
- package/lib/module/components/Chat/ChatFilterBottomSheet.js.map +1 -0
- package/lib/module/components/Chat/ChatFilterBottomSheetOpener.js +93 -26
- package/lib/module/components/Chat/ChatFilterBottomSheetOpener.js.map +1 -1
- package/lib/module/components/Chat/ChatFilterBottomSheetView.js +2 -1
- package/lib/module/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
- package/lib/module/components/Chat/ChatFilterItem.js +11 -8
- package/lib/module/components/Chat/ChatFilterItem.js.map +1 -1
- package/lib/module/components/Chat/ChatFilterView.js +55 -46
- package/lib/module/components/Chat/ChatFilterView.js.map +1 -1
- package/lib/module/components/Chat/ChatList.js +14 -7
- package/lib/module/components/Chat/ChatList.js.map +1 -1
- package/lib/module/components/Chat/ChatMessage.js +81 -9
- package/lib/module/components/Chat/ChatMessage.js.map +1 -1
- package/lib/module/components/Chat/ChatMoreActionsModal.js +53 -0
- package/lib/module/components/Chat/ChatMoreActionsModal.js.map +1 -0
- package/lib/module/components/Chat/ChatMoreActionsSheetView.js +55 -0
- package/lib/module/components/Chat/ChatMoreActionsSheetView.js.map +1 -0
- package/lib/module/components/Chat/ChatMoreActionsView.js +75 -0
- package/lib/module/components/Chat/ChatMoreActionsView.js.map +1 -0
- package/lib/module/components/Chat/ChatPaused.js +77 -0
- package/lib/module/components/Chat/ChatPaused.js.map +1 -0
- package/lib/module/components/Chat/MessageOptionsBottomSheet.js +26 -0
- package/lib/module/components/Chat/MessageOptionsBottomSheet.js.map +1 -0
- package/lib/module/components/Chat/MessageOptionsBottomSheetView.js +58 -0
- package/lib/module/components/Chat/MessageOptionsBottomSheetView.js.map +1 -0
- package/lib/module/components/Chat/MessageOptionsView.js +180 -0
- package/lib/module/components/Chat/MessageOptionsView.js.map +1 -0
- package/lib/module/components/Chat/PeerBlockedFromChat.js +38 -0
- package/lib/module/components/Chat/PeerBlockedFromChat.js.map +1 -0
- package/lib/module/components/Chat/PinnedMessages.js +288 -0
- package/lib/module/components/Chat/PinnedMessages.js.map +1 -0
- package/lib/module/components/Chat/index.js +1 -1
- package/lib/module/components/Chat/index.js.map +1 -1
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +13 -12
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsHeader.js +24 -5
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsHeader.js.map +1 -1
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js +9 -5
- package/lib/module/components/ChatAndParticipants/ChatAndParticipantsView.js.map +1 -1
- package/lib/module/components/ChatAndParticipants/ChatView.js +22 -3
- package/lib/module/components/ChatAndParticipants/ChatView.js.map +1 -1
- package/lib/module/components/DisplayView.js +5 -12
- package/lib/module/components/DisplayView.js.map +1 -1
- package/lib/module/components/EndRoomModal.js +1 -2
- package/lib/module/components/EndRoomModal.js.map +1 -1
- package/lib/module/components/EndRoomModalContent.js +6 -8
- package/lib/module/components/EndRoomModalContent.js.map +1 -1
- package/lib/module/components/Footer.js +12 -18
- package/lib/module/components/Footer.js.map +1 -1
- package/lib/module/components/GridView.js +32 -2
- package/lib/module/components/GridView.js.map +1 -1
- package/lib/module/components/HLSFooter.js +3 -1
- package/lib/module/components/HLSFooter.js.map +1 -1
- package/lib/module/components/HLSView.js +8 -6
- package/lib/module/components/HLSView.js.map +1 -1
- package/lib/module/components/HMSBaseButton.js +10 -2
- package/lib/module/components/HMSBaseButton.js.map +1 -1
- package/lib/module/components/HMSDangerButton.js +4 -2
- package/lib/module/components/HMSDangerButton.js.map +1 -1
- package/lib/module/components/HMSHLSMessage.js +88 -3
- package/lib/module/components/HMSHLSMessage.js.map +1 -1
- package/lib/module/components/HMSHLSMessageList.js +2 -2
- package/lib/module/components/HMSHLSMessageList.js.map +1 -1
- package/lib/module/components/HMSHandRaiseNotification.js +6 -3
- package/lib/module/components/HMSHandRaiseNotification.js.map +1 -1
- package/lib/module/components/HMSKeyboardAvoidingView.android.js +2 -3
- package/lib/module/components/HMSKeyboardAvoidingView.android.js.map +1 -1
- package/lib/module/components/HMSKeyboardAvoidingView.js +9 -3
- package/lib/module/components/HMSKeyboardAvoidingView.js.map +1 -1
- package/lib/module/components/HMSLiveIndicator.js +8 -63
- package/lib/module/components/HMSLiveIndicator.js.map +1 -1
- package/lib/module/components/HMSLiveViewerCount.js +71 -0
- package/lib/module/components/HMSLiveViewerCount.js.map +1 -0
- package/lib/module/components/HMSLocalScreenshareNotification.js +2 -1
- package/lib/module/components/HMSLocalScreenshareNotification.js.map +1 -1
- package/lib/module/components/HMSNotification.js +32 -5
- package/lib/module/components/HMSNotification.js.map +1 -1
- package/lib/module/components/HMSNotifications.js +9 -2
- package/lib/module/components/HMSNotifications.js.map +1 -1
- package/lib/module/components/HMSOverlayChatView.js +56 -5
- package/lib/module/components/HMSOverlayChatView.js.map +1 -1
- package/lib/module/components/HMSPreviewEditName.js +6 -1
- package/lib/module/components/HMSPreviewEditName.js.map +1 -1
- package/lib/module/components/HMSPreviewHLSLiveIndicator.js +2 -5
- package/lib/module/components/HMSPreviewHLSLiveIndicator.js.map +1 -1
- package/lib/module/components/HMSPrimaryButton.js +4 -2
- package/lib/module/components/HMSPrimaryButton.js.map +1 -1
- package/lib/module/components/HMSRecordingIndicator.js +12 -7
- package/lib/module/components/HMSRecordingIndicator.js.map +1 -1
- package/lib/module/components/HMSRoomOptions.js +3 -6
- package/lib/module/components/HMSRoomOptions.js.map +1 -1
- package/lib/module/components/HMSTerminalErrorNotification.js +6 -2
- package/lib/module/components/HMSTerminalErrorNotification.js.map +1 -1
- package/lib/module/components/Header.js +10 -3
- package/lib/module/components/Header.js.map +1 -1
- package/lib/module/components/LeaveRoomBottomSheet.js +5 -11
- package/lib/module/components/LeaveRoomBottomSheet.js.map +1 -1
- package/lib/module/components/Meeting.js +6 -14
- package/lib/module/components/Meeting.js.map +1 -1
- package/lib/module/components/MeetingScreenContent.js +51 -53
- package/lib/module/components/MeetingScreenContent.js.map +1 -1
- package/lib/module/components/MiniView.js.map +1 -1
- package/lib/module/components/Modals.js +10 -13
- package/lib/module/components/Modals.js.map +1 -1
- package/lib/module/components/OverlayedViews.js +6 -2
- package/lib/module/components/OverlayedViews.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsItemOptions.js +5 -1
- package/lib/module/components/Participants/ParticipantsItemOptions.js.map +1 -1
- package/lib/module/components/PeerSettingsModalContent.js +2 -1
- package/lib/module/components/PeerSettingsModalContent.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/PressableIcon.js +6 -2
- package/lib/module/components/PressableIcon.js.map +1 -1
- package/lib/module/components/Preview.js +13 -2
- package/lib/module/components/Preview.js.map +1 -1
- package/lib/module/components/PreviewForRoleChangeModal.js +5 -4
- package/lib/module/components/PreviewForRoleChangeModal.js.map +1 -1
- package/lib/module/components/RoomSettingsModalContent.js +36 -11
- package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/module/components/RoomSettingsModalDebugModeContent.js +2 -4
- package/lib/module/components/RoomSettingsModalDebugModeContent.js.map +1 -1
- package/lib/module/components/WebrtcView.js +37 -2
- package/lib/module/components/WebrtcView.js.map +1 -1
- package/lib/module/hooks-sdk-selectors.js +12 -0
- package/lib/module/hooks-sdk-selectors.js.map +1 -1
- package/lib/module/hooks-sdk.js +23 -1
- package/lib/module/hooks-sdk.js.map +1 -1
- package/lib/module/hooks-util-selectors.js +3 -2
- package/lib/module/hooks-util-selectors.js.map +1 -1
- package/lib/module/hooks-util.js +455 -90
- package/lib/module/hooks-util.js.map +1 -1
- package/lib/module/redux/actionTypes.js +18 -3
- package/lib/module/redux/actionTypes.js.map +1 -1
- package/lib/module/redux/actions/index.js +42 -2
- package/lib/module/redux/actions/index.js.map +1 -1
- package/lib/module/redux/reducers/appState.js +49 -1
- package/lib/module/redux/reducers/appState.js.map +1 -1
- package/lib/module/redux/reducers/chatWindow.js +1 -2
- package/lib/module/redux/reducers/chatWindow.js.map +1 -1
- package/lib/module/redux/reducers/message.js +17 -4
- package/lib/module/redux/reducers/message.js.map +1 -1
- package/lib/module/types.js +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/types.js +5 -2
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils.js +2 -2
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
- package/lib/typescript/Icons/Chat/index.d.ts +1 -0
- package/lib/typescript/Icons/Chat/index.d.ts.map +1 -1
- package/lib/typescript/Icons/NoEntry/index.d.ts +7 -0
- package/lib/typescript/Icons/NoEntry/index.d.ts.map +1 -0
- package/lib/typescript/Icons/PauseCircle/index.d.ts +7 -0
- package/lib/typescript/Icons/PauseCircle/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Pin/index.d.ts +1 -0
- package/lib/typescript/Icons/Pin/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Recording/index.d.ts +1 -1
- package/lib/typescript/Icons/Recording/index.d.ts.map +1 -1
- package/lib/typescript/Icons/index.d.ts +2 -0
- package/lib/typescript/Icons/index.d.ts.map +1 -1
- package/lib/typescript/components/AnimatedFooter.d.ts.map +1 -1
- package/lib/typescript/components/AnimatedHLSFooter.d.ts.map +1 -1
- package/lib/typescript/components/AnimatedHeader.d.ts.map +1 -1
- package/lib/typescript/components/BottomSheet.d.ts +1 -0
- package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatFilterBottomSheet.d.ts +3 -0
- package/lib/typescript/components/Chat/ChatFilterBottomSheet.d.ts.map +1 -0
- package/lib/typescript/components/Chat/ChatFilterBottomSheetOpener.d.ts +1 -0
- package/lib/typescript/components/Chat/ChatFilterBottomSheetOpener.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatFilterBottomSheetView.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatFilterItem.d.ts +1 -0
- package/lib/typescript/components/Chat/ChatFilterItem.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatFilterView.d.ts +1 -0
- package/lib/typescript/components/Chat/ChatFilterView.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatList.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatMessage.d.ts.map +1 -1
- package/lib/typescript/components/Chat/ChatMoreActionsModal.d.ts +7 -0
- package/lib/typescript/components/Chat/ChatMoreActionsModal.d.ts.map +1 -0
- package/lib/typescript/components/Chat/ChatMoreActionsSheetView.d.ts +6 -0
- package/lib/typescript/components/Chat/ChatMoreActionsSheetView.d.ts.map +1 -0
- package/lib/typescript/components/Chat/ChatMoreActionsView.d.ts +7 -0
- package/lib/typescript/components/Chat/ChatMoreActionsView.d.ts.map +1 -0
- package/lib/typescript/components/Chat/ChatPaused.d.ts +10 -0
- package/lib/typescript/components/Chat/ChatPaused.d.ts.map +1 -0
- package/lib/typescript/components/Chat/MessageOptionsBottomSheet.d.ts +3 -0
- package/lib/typescript/components/Chat/MessageOptionsBottomSheet.d.ts.map +1 -0
- package/lib/typescript/components/Chat/MessageOptionsBottomSheetView.d.ts +6 -0
- package/lib/typescript/components/Chat/MessageOptionsBottomSheetView.d.ts.map +1 -0
- package/lib/typescript/components/Chat/MessageOptionsView.d.ts +7 -0
- package/lib/typescript/components/Chat/MessageOptionsView.d.ts.map +1 -0
- package/lib/typescript/components/Chat/PeerBlockedFromChat.d.ts +9 -0
- package/lib/typescript/components/Chat/PeerBlockedFromChat.d.ts.map +1 -0
- package/lib/typescript/components/Chat/PinnedMessages.d.ts +8 -0
- package/lib/typescript/components/Chat/PinnedMessages.d.ts.map +1 -0
- package/lib/typescript/components/Chat/index.d.ts +1 -1
- package/lib/typescript/components/Chat/index.d.ts.map +1 -1
- package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsHeader.d.ts.map +1 -1
- package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsView.d.ts.map +1 -1
- package/lib/typescript/components/ChatAndParticipants/ChatView.d.ts.map +1 -1
- package/lib/typescript/components/DisplayView.d.ts.map +1 -1
- package/lib/typescript/components/EndRoomModal.d.ts.map +1 -1
- package/lib/typescript/components/EndRoomModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Footer.d.ts +1 -1
- package/lib/typescript/components/Footer.d.ts.map +1 -1
- package/lib/typescript/components/GridView.d.ts.map +1 -1
- package/lib/typescript/components/HLSView.d.ts.map +1 -1
- package/lib/typescript/components/HMSBaseButton.d.ts +1 -0
- package/lib/typescript/components/HMSBaseButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSDangerButton.d.ts +1 -0
- package/lib/typescript/components/HMSDangerButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSHLSMessage.d.ts +1 -1
- package/lib/typescript/components/HMSHLSMessage.d.ts.map +1 -1
- package/lib/typescript/components/HMSHandRaiseNotification.d.ts.map +1 -1
- package/lib/typescript/components/HMSKeyboardAvoidingView.android.d.ts.map +1 -1
- package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts +2 -1
- package/lib/typescript/components/HMSKeyboardAvoidingView.d.ts.map +1 -1
- package/lib/typescript/components/HMSLiveIndicator.d.ts.map +1 -1
- package/lib/typescript/components/HMSLiveViewerCount.d.ts +3 -0
- package/lib/typescript/components/HMSLiveViewerCount.d.ts.map +1 -0
- package/lib/typescript/components/HMSLocalScreenshareNotification.d.ts.map +1 -1
- package/lib/typescript/components/HMSNotification.d.ts +2 -1
- package/lib/typescript/components/HMSNotification.d.ts.map +1 -1
- package/lib/typescript/components/HMSNotifications.d.ts.map +1 -1
- package/lib/typescript/components/HMSOverlayChatView.d.ts +5 -1
- package/lib/typescript/components/HMSOverlayChatView.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewEditName.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts.map +1 -1
- package/lib/typescript/components/HMSPrimaryButton.d.ts +1 -0
- package/lib/typescript/components/HMSPrimaryButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSRecordingIndicator.d.ts.map +1 -1
- package/lib/typescript/components/HMSTerminalErrorNotification.d.ts.map +1 -1
- package/lib/typescript/components/Header.d.ts +1 -0
- package/lib/typescript/components/Header.d.ts.map +1 -1
- package/lib/typescript/components/LeaveRoomBottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/Meeting.d.ts.map +1 -1
- package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
- package/lib/typescript/components/Modals.d.ts.map +1 -1
- package/lib/typescript/components/OverlayedViews.d.ts +4 -1
- package/lib/typescript/components/OverlayedViews.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/PeerVideoTileView.d.ts.map +1 -1
- package/lib/typescript/components/PressableIcon.d.ts.map +1 -1
- package/lib/typescript/components/Preview.d.ts.map +1 -1
- package/lib/typescript/components/PreviewForRoleChangeModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalDebugModeContent.d.ts.map +1 -1
- package/lib/typescript/components/WebrtcView.d.ts +2 -0
- package/lib/typescript/components/WebrtcView.d.ts.map +1 -1
- package/lib/typescript/hooks-sdk-selectors.d.ts +3 -0
- package/lib/typescript/hooks-sdk-selectors.d.ts.map +1 -1
- package/lib/typescript/hooks-sdk.d.ts +4 -0
- package/lib/typescript/hooks-sdk.d.ts.map +1 -1
- package/lib/typescript/hooks-util-selectors.d.ts.map +1 -1
- package/lib/typescript/hooks-util.d.ts +39 -3
- package/lib/typescript/hooks-util.d.ts.map +1 -1
- package/lib/typescript/redux/actionTypes.d.ts +10 -2
- package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
- package/lib/typescript/redux/actions/index.d.ts +43 -3
- package/lib/typescript/redux/actions/index.d.ts.map +1 -1
- package/lib/typescript/redux/index.d.ts +8 -2
- package/lib/typescript/redux/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/appState.d.ts +8 -2
- package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/chatWindow.d.ts +1 -1
- package/lib/typescript/redux/reducers/chatWindow.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/index.d.ts +8 -2
- package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/message.d.ts +3 -2
- package/lib/typescript/redux/reducers/message.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +23 -3
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +4 -0
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/HMSRoomSetup.tsx +8 -3
- package/src/Icons/Chat/assets/chat-on.png +0 -0
- package/src/Icons/Chat/assets/chat-on@2x.png +0 -0
- package/src/Icons/Chat/assets/chat-on@3x.png +0 -0
- package/src/Icons/Chat/index.tsx +19 -6
- package/src/Icons/NoEntry/assets/no-entry.png +0 -0
- package/src/Icons/NoEntry/assets/no-entry@2x.png +0 -0
- package/src/Icons/NoEntry/assets/no-entry@3x.png +0 -0
- package/src/Icons/NoEntry/index.tsx +33 -0
- package/src/Icons/PauseCircle/assets/pause-circle.png +0 -0
- package/src/Icons/PauseCircle/assets/pause-circle@2x.png +0 -0
- package/src/Icons/PauseCircle/assets/pause-circle@3x.png +0 -0
- package/src/Icons/PauseCircle/index.tsx +27 -0
- package/src/Icons/Pin/assets/unpin.png +0 -0
- package/src/Icons/Pin/assets/unpin@2x.png +0 -0
- package/src/Icons/Pin/assets/unpin@3x.png +0 -0
- package/src/Icons/Pin/index.tsx +13 -3
- package/src/Icons/Recording/assets/recording-pause.png +0 -0
- package/src/Icons/Recording/assets/recording-pause@2x.png +0 -0
- package/src/Icons/Recording/assets/recording-pause@3x.png +0 -0
- package/src/Icons/Recording/index.tsx +4 -2
- package/src/Icons/index.ts +2 -0
- package/src/components/AnimatedFooter.tsx +9 -3
- package/src/components/AnimatedHLSFooter.tsx +8 -17
- package/src/components/AnimatedHeader.tsx +16 -5
- package/src/components/BottomSheet.tsx +21 -5
- package/src/components/Chat/ChatFilterBottomSheet.tsx +35 -0
- package/src/components/Chat/ChatFilterBottomSheetOpener.tsx +170 -42
- package/src/components/Chat/ChatFilterBottomSheetView.tsx +1 -0
- package/src/components/Chat/ChatFilterItem.tsx +8 -4
- package/src/components/Chat/ChatFilterView.tsx +102 -75
- package/src/components/Chat/ChatList.tsx +18 -6
- package/src/components/Chat/ChatMessage.tsx +111 -7
- package/src/components/Chat/ChatMoreActionsModal.tsx +75 -0
- package/src/components/Chat/ChatMoreActionsSheetView.tsx +77 -0
- package/src/components/Chat/ChatMoreActionsView.tsx +84 -0
- package/src/components/Chat/ChatPaused.tsx +103 -0
- package/src/components/Chat/MessageOptionsBottomSheet.tsx +33 -0
- package/src/components/Chat/MessageOptionsBottomSheetView.tsx +82 -0
- package/src/components/Chat/MessageOptionsView.tsx +248 -0
- package/src/components/Chat/PeerBlockedFromChat.tsx +49 -0
- package/src/components/Chat/PinnedMessages.tsx +422 -0
- package/src/components/Chat/index.ts +1 -1
- package/src/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.tsx +15 -7
- package/src/components/ChatAndParticipants/ChatAndParticipantsHeader.tsx +48 -12
- package/src/components/ChatAndParticipants/ChatAndParticipantsView.tsx +14 -5
- package/src/components/ChatAndParticipants/ChatView.tsx +37 -5
- package/src/components/DisplayView.tsx +4 -13
- package/src/components/EndRoomModal.tsx +0 -1
- package/src/components/EndRoomModalContent.tsx +11 -13
- package/src/components/Footer.tsx +20 -23
- package/src/components/GridView.tsx +44 -8
- package/src/components/HLSFooter.tsx +1 -1
- package/src/components/HLSView.tsx +45 -44
- package/src/components/HMSBaseButton.tsx +17 -2
- package/src/components/HMSDangerButton.tsx +3 -0
- package/src/components/HMSHLSMessage.tsx +130 -13
- package/src/components/HMSHLSMessageList.tsx +2 -2
- package/src/components/HMSHandRaiseNotification.tsx +17 -10
- package/src/components/HMSKeyboardAvoidingView.android.tsx +1 -5
- package/src/components/HMSKeyboardAvoidingView.tsx +12 -4
- package/src/components/HMSLiveIndicator.tsx +14 -83
- package/src/components/HMSLiveViewerCount.tsx +91 -0
- package/src/components/HMSLocalScreenshareNotification.tsx +1 -0
- package/src/components/HMSNotification.tsx +56 -13
- package/src/components/HMSNotifications.tsx +12 -2
- package/src/components/HMSOverlayChatView.tsx +91 -18
- package/src/components/HMSPreviewEditName.tsx +12 -1
- package/src/components/HMSPreviewHLSLiveIndicator.tsx +2 -5
- package/src/components/HMSPrimaryButton.tsx +3 -0
- package/src/components/HMSRecordingIndicator.tsx +10 -7
- package/src/components/HMSRoomOptions.tsx +4 -4
- package/src/components/HMSTerminalErrorNotification.tsx +15 -10
- package/src/components/Header.tsx +17 -3
- package/src/components/LeaveRoomBottomSheet.tsx +14 -15
- package/src/components/Meeting.tsx +6 -19
- package/src/components/MeetingScreenContent.tsx +70 -64
- package/src/components/MiniView.tsx +4 -4
- package/src/components/Modals.tsx +23 -25
- package/src/components/OverlayedViews.tsx +6 -3
- package/src/components/Participants/ParticipantsItemOptions.tsx +12 -7
- package/src/components/PeerSettingsModalContent.tsx +4 -1
- package/src/components/PeerVideoTile/PeerVideoTileView.tsx +4 -1
- package/src/components/PressableIcon.tsx +22 -17
- package/src/components/Preview.tsx +15 -2
- package/src/components/PreviewForRoleChangeModal.tsx +4 -3
- package/src/components/RoomSettingsModalContent.tsx +74 -14
- package/src/components/RoomSettingsModalDebugModeContent.tsx +2 -4
- package/src/components/WebrtcView.tsx +63 -22
- package/src/hooks-sdk-selectors.tsx +19 -0
- package/src/hooks-sdk.ts +37 -0
- package/src/hooks-util-selectors.tsx +2 -2
- package/src/hooks-util.ts +639 -131
- package/src/redux/actionTypes.ts +25 -2
- package/src/redux/actions/index.ts +46 -4
- package/src/redux/reducers/appState.ts +60 -3
- package/src/redux/reducers/chatWindow.ts +2 -2
- package/src/redux/reducers/message.ts +20 -6
- package/src/types.ts +35 -6
- package/src/utils/types.ts +15 -3
- package/src/utils.ts +2 -2
- package/lib/commonjs/components/Chat/PinnedMessage.js +0 -81
- package/lib/commonjs/components/Chat/PinnedMessage.js.map +0 -1
- package/lib/module/components/Chat/PinnedMessage.js +0 -72
- package/lib/module/components/Chat/PinnedMessage.js.map +0 -1
- package/lib/typescript/components/Chat/PinnedMessage.d.ts +0 -3
- package/lib/typescript/components/Chat/PinnedMessage.d.ts.map +0 -1
- package/src/components/Chat/PinnedMessage.tsx +0 -89
package/src/hooks-util.ts
CHANGED
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
HMSPIPListenerActions,
|
|
8
8
|
HMSPeer,
|
|
9
9
|
HMSPeerUpdate,
|
|
10
|
-
HMSRemotePeer,
|
|
11
10
|
HMSRoleChangeRequest,
|
|
12
11
|
HMSRoom,
|
|
13
12
|
HMSRoomUpdate,
|
|
@@ -30,8 +29,8 @@ import type {
|
|
|
30
29
|
HMSPIPConfig,
|
|
31
30
|
HMSRole,
|
|
32
31
|
HMSSessionStore,
|
|
33
|
-
HMSSessionStoreValue,
|
|
34
32
|
HMSSpeaker,
|
|
33
|
+
JsonValue,
|
|
35
34
|
} from '@100mslive/react-native-hms';
|
|
36
35
|
import type {
|
|
37
36
|
ColorPalette,
|
|
@@ -59,12 +58,9 @@ import {
|
|
|
59
58
|
PeerListRefreshInterval,
|
|
60
59
|
PipModes,
|
|
61
60
|
} from './utils/types';
|
|
62
|
-
import
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
PeerTrackNode,
|
|
66
|
-
} from './utils/types';
|
|
67
|
-
import { createPeerTrackNode } from './utils/functions';
|
|
61
|
+
import { ChatBroadcastFilter } from './utils/types';
|
|
62
|
+
import type { OnLeaveHandler, PeerTrackNode } from './utils/types';
|
|
63
|
+
import { createPeerTrackNode, parseMetadata } from './utils/functions';
|
|
68
64
|
import {
|
|
69
65
|
batch,
|
|
70
66
|
shallowEqual,
|
|
@@ -78,13 +74,14 @@ import {
|
|
|
78
74
|
addNotification,
|
|
79
75
|
addParticipant,
|
|
80
76
|
addParticipants,
|
|
81
|
-
|
|
77
|
+
addPinnedMessages,
|
|
82
78
|
addScreenshareTile,
|
|
83
79
|
addUpdateParticipant,
|
|
84
80
|
changeMeetingState,
|
|
85
81
|
changePipModeStatus,
|
|
86
82
|
changeStartingHLSStream,
|
|
87
83
|
clearStore,
|
|
84
|
+
filterOutMsgsFromBlockedPeers,
|
|
88
85
|
removeNotification,
|
|
89
86
|
removeParticipant,
|
|
90
87
|
removeParticipants,
|
|
@@ -94,6 +91,9 @@ import {
|
|
|
94
91
|
setActiveChatBottomSheetTab,
|
|
95
92
|
setActiveSpeakers,
|
|
96
93
|
setAutoEnterPipMode,
|
|
94
|
+
setChatPeerBlacklist,
|
|
95
|
+
setChatState,
|
|
96
|
+
setEditUsernameDisabled,
|
|
97
97
|
setFullScreenPeerTrackNode,
|
|
98
98
|
setHMSLocalPeerState,
|
|
99
99
|
setHMSRoleState,
|
|
@@ -126,7 +126,7 @@ import {
|
|
|
126
126
|
replacePeerTrackNodesWithTrack,
|
|
127
127
|
} from './peerTrackNodeUtils';
|
|
128
128
|
import { MeetingState } from './types';
|
|
129
|
-
import type { HMSPrebuiltProps } from './types';
|
|
129
|
+
import type { ChatState, HMSPrebuiltProps, PinnedMessage } from './types';
|
|
130
130
|
import {
|
|
131
131
|
BackHandler,
|
|
132
132
|
InteractionManager,
|
|
@@ -151,6 +151,8 @@ import type { GridViewRefAttrs } from './components/GridView';
|
|
|
151
151
|
import { getRoomLayout } from './modules/HMSManager';
|
|
152
152
|
import { DEFAULT_THEME, DEFAULT_TYPOGRAPHY } from './utils/theme';
|
|
153
153
|
import { NotificationTypes } from './types';
|
|
154
|
+
import { KeyboardState, useSharedValue } from 'react-native-reanimated';
|
|
155
|
+
import { useHMSActions } from './hooks-sdk';
|
|
154
156
|
|
|
155
157
|
export const useHMSListeners = (
|
|
156
158
|
setPeerTrackNodes: React.Dispatch<React.SetStateAction<PeerTrackNode[]>>
|
|
@@ -189,48 +191,6 @@ const useHMSRoomUpdate = (hmsInstance: HMSSDK) => {
|
|
|
189
191
|
}
|
|
190
192
|
} else if (type === HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED) {
|
|
191
193
|
dispatch(changeStartingHLSStream(false));
|
|
192
|
-
} else if (type === HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED) {
|
|
193
|
-
let streaming = room?.rtmpHMSRtmpStreamingState?.running;
|
|
194
|
-
const startAtDate = room?.rtmpHMSRtmpStreamingState?.startedAt;
|
|
195
|
-
|
|
196
|
-
let startTime: null | string = null;
|
|
197
|
-
|
|
198
|
-
if (startAtDate) {
|
|
199
|
-
let hours = startAtDate.getHours().toString();
|
|
200
|
-
let minutes = startAtDate.getMinutes()?.toString();
|
|
201
|
-
startTime = hours + ':' + minutes;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
Toast.showWithGravity(
|
|
205
|
-
`RTMP Streaming ${
|
|
206
|
-
streaming
|
|
207
|
-
? `Started ${startTime ? 'At ' + startTime : ''}`
|
|
208
|
-
: 'Stopped'
|
|
209
|
-
}`,
|
|
210
|
-
Toast.LONG,
|
|
211
|
-
Toast.TOP
|
|
212
|
-
);
|
|
213
|
-
} else if (type === HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED) {
|
|
214
|
-
let streaming = room?.serverRecordingState?.running;
|
|
215
|
-
const startAtDate = room?.serverRecordingState?.startedAt;
|
|
216
|
-
|
|
217
|
-
let startTime: null | string = null;
|
|
218
|
-
|
|
219
|
-
if (startAtDate) {
|
|
220
|
-
let hours = startAtDate.getHours().toString();
|
|
221
|
-
let minutes = startAtDate.getMinutes()?.toString();
|
|
222
|
-
startTime = hours + ':' + minutes;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
Toast.showWithGravity(
|
|
226
|
-
`Server Recording ${
|
|
227
|
-
streaming
|
|
228
|
-
? `Started ${startTime ? 'At ' + startTime : ''}`
|
|
229
|
-
: 'Stopped'
|
|
230
|
-
}`,
|
|
231
|
-
Toast.LONG,
|
|
232
|
-
Toast.TOP
|
|
233
|
-
);
|
|
234
194
|
}
|
|
235
195
|
};
|
|
236
196
|
|
|
@@ -260,6 +220,7 @@ const useHMSPeersUpdate = (
|
|
|
260
220
|
// const inMeeting = useSelector(
|
|
261
221
|
// (state: RootState) => state.app.meetingState === MeetingState.IN_MEETING
|
|
262
222
|
// );
|
|
223
|
+
const hmsActions = useHMSActions();
|
|
263
224
|
|
|
264
225
|
useEffect(() => {
|
|
265
226
|
const peerUpdateHandler = ({ peer, type }: PeerUpdate) => {
|
|
@@ -313,6 +274,7 @@ const useHMSPeersUpdate = (
|
|
|
313
274
|
const fullScreenPeerTrackNode = reduxState.app.fullScreenPeerTrackNode;
|
|
314
275
|
const miniviewPeerTrackNode = reduxState.app.miniviewPeerTrackNode;
|
|
315
276
|
const localPeerTrackNode = reduxState.app.localPeerTrackNode;
|
|
277
|
+
const initialRole = reduxState.app.initialRole;
|
|
316
278
|
|
|
317
279
|
// Currently Applied Layout config
|
|
318
280
|
const currentLayoutConfig = selectLayoutConfigForRole(
|
|
@@ -383,11 +345,41 @@ const useHMSPeersUpdate = (
|
|
|
383
345
|
// - TODO: update local localPeer state
|
|
384
346
|
// - Pass this updated data to Meeting component -> DisplayView component
|
|
385
347
|
updateLocalPeer();
|
|
348
|
+
|
|
349
|
+
if (type === HMSPeerUpdate.ROLE_CHANGED) {
|
|
350
|
+
const parsedLocalPeerMetadata = parseMetadata(peer.metadata);
|
|
351
|
+
|
|
352
|
+
if (parsedLocalPeerMetadata.prevRole !== initialRole) {
|
|
353
|
+
const newMetadata = {
|
|
354
|
+
...parsedLocalPeerMetadata,
|
|
355
|
+
prevRole: initialRole?.name,
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
hmsActions
|
|
359
|
+
.changeMetadata(newMetadata)
|
|
360
|
+
.then((r) => {
|
|
361
|
+
console.log('Metadata changed successfully', r);
|
|
362
|
+
})
|
|
363
|
+
.catch((e) => {
|
|
364
|
+
console.log('Metadata change failed', e);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
386
368
|
return;
|
|
387
369
|
}
|
|
388
370
|
if (type === HMSPeerUpdate.ROLE_CHANGED) {
|
|
389
371
|
dispatch(addUpdateParticipant(peer));
|
|
390
372
|
|
|
373
|
+
// saving current role in peer metadata,
|
|
374
|
+
// so that when peer is removed from stage, we can assign previous role to it.
|
|
375
|
+
// if (localPeerRoleName) {
|
|
376
|
+
// const newMetadata = {
|
|
377
|
+
// ...localPeerMetadata,
|
|
378
|
+
// prevRole: localPeerRoleName,
|
|
379
|
+
// };
|
|
380
|
+
// await hmsActions.changeMetadata(newMetadata);
|
|
381
|
+
// }
|
|
382
|
+
|
|
391
383
|
// Handling regular tiles list
|
|
392
384
|
if (
|
|
393
385
|
peer.role?.publishSettings?.allowed === undefined ||
|
|
@@ -1040,6 +1032,7 @@ type SessionStoreListeners = Array<{ remove: () => void }>;
|
|
|
1040
1032
|
export const useHMSSessionStoreListeners = (
|
|
1041
1033
|
gridViewRef: React.MutableRefObject<GridViewRefAttrs | null>
|
|
1042
1034
|
) => {
|
|
1035
|
+
const store = useStore<RootState>();
|
|
1043
1036
|
const dispatch = useDispatch();
|
|
1044
1037
|
const hmsSessionStore = useSelector(
|
|
1045
1038
|
(state: RootState) => state.user.hmsSessionStore
|
|
@@ -1053,18 +1046,105 @@ export const useHMSSessionStoreListeners = (
|
|
|
1053
1046
|
|
|
1054
1047
|
const addSessionStoreListeners = () => {
|
|
1055
1048
|
// Handle 'spotlight' key values
|
|
1056
|
-
const handleSpotlightIdChange = (id:
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1049
|
+
const handleSpotlightIdChange = (id: JsonValue) => {
|
|
1050
|
+
if (id === null || id === undefined || typeof id === 'string') {
|
|
1051
|
+
// set value to the state to rerender the component to reflect changes
|
|
1052
|
+
dispatch(saveUserData({ spotlightTrackId: id }));
|
|
1053
|
+
// Scroll to start of the list
|
|
1054
|
+
gridViewRef.current
|
|
1055
|
+
?.getRegularTilesFlatlistRef()
|
|
1056
|
+
.current?.scrollToOffset({ animated: true, offset: 0 });
|
|
1057
|
+
}
|
|
1063
1058
|
};
|
|
1064
1059
|
|
|
1065
|
-
// Handle '
|
|
1066
|
-
const
|
|
1067
|
-
|
|
1060
|
+
// Handle 'pinnedMessages' key values
|
|
1061
|
+
const handlePinnedMessagesChange = (data: JsonValue) => {
|
|
1062
|
+
if (Array.isArray(data)) {
|
|
1063
|
+
dispatch(addPinnedMessages(data as PinnedMessage[]));
|
|
1064
|
+
}
|
|
1065
|
+
};
|
|
1066
|
+
|
|
1067
|
+
// Handle 'chatState' key values
|
|
1068
|
+
const handleChatStateChange = (data: JsonValue) => {
|
|
1069
|
+
try {
|
|
1070
|
+
if (
|
|
1071
|
+
typeof data !== 'object' ||
|
|
1072
|
+
Array.isArray(data) ||
|
|
1073
|
+
data === null
|
|
1074
|
+
) {
|
|
1075
|
+
throw new Error('`data` is a falsy value');
|
|
1076
|
+
}
|
|
1077
|
+
if (!('enabled' in data)) {
|
|
1078
|
+
throw new Error("`data` doesn't have `enabled` property");
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
const parsedData = data as ChatState;
|
|
1082
|
+
|
|
1083
|
+
const reduxState = store.getState();
|
|
1084
|
+
const currentChatState = reduxState.app.chatState;
|
|
1085
|
+
|
|
1086
|
+
if (parsedData.enabled === currentChatState?.enabled) {
|
|
1087
|
+
return;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
const currentLayoutConfig = selectLayoutConfigForRole(
|
|
1091
|
+
reduxState.hmsStates.layoutConfig,
|
|
1092
|
+
reduxState.hmsStates.localPeer?.role ?? null
|
|
1093
|
+
);
|
|
1094
|
+
|
|
1095
|
+
const chatLayoutConfig =
|
|
1096
|
+
selectChatLayoutConfig(currentLayoutConfig);
|
|
1097
|
+
|
|
1098
|
+
const isAllowedToSendMessage =
|
|
1099
|
+
(chatLayoutConfig?.private_chat_enabled ||
|
|
1100
|
+
chatLayoutConfig?.public_chat_enabled ||
|
|
1101
|
+
(chatLayoutConfig?.roles_whitelist &&
|
|
1102
|
+
chatLayoutConfig?.roles_whitelist.length > 0)) ??
|
|
1103
|
+
false;
|
|
1104
|
+
|
|
1105
|
+
batch(() => {
|
|
1106
|
+
if (
|
|
1107
|
+
isAllowedToSendMessage && // Only show notification when allowed to send message, AND
|
|
1108
|
+
(!parsedData.enabled || // Chat is Paused, OR
|
|
1109
|
+
(currentChatState &&
|
|
1110
|
+
parsedData.enabled !== currentChatState.enabled)) // current Chat state is different from previous state
|
|
1111
|
+
) {
|
|
1112
|
+
dispatch(
|
|
1113
|
+
addNotification({
|
|
1114
|
+
id: `chat-state-enabled-${Math.random()
|
|
1115
|
+
.toString(16)
|
|
1116
|
+
.slice(2)}`,
|
|
1117
|
+
icon: parsedData.enabled ? 'chat-on' : 'chat-off',
|
|
1118
|
+
type: NotificationTypes.INFO,
|
|
1119
|
+
title: `Chat ${parsedData.enabled ? 'Resumed' : 'Paused'}`,
|
|
1120
|
+
message: `Chat ${
|
|
1121
|
+
parsedData.enabled ? 'resumed' : 'paused'
|
|
1122
|
+
} ${
|
|
1123
|
+
parsedData.updatedBy
|
|
1124
|
+
? `by ${parsedData.updatedBy.userName}`
|
|
1125
|
+
: ''
|
|
1126
|
+
}`,
|
|
1127
|
+
})
|
|
1128
|
+
);
|
|
1129
|
+
}
|
|
1130
|
+
dispatch(setChatState(parsedData));
|
|
1131
|
+
});
|
|
1132
|
+
} catch (error) {
|
|
1133
|
+
dispatch(setChatState(null));
|
|
1134
|
+
}
|
|
1135
|
+
};
|
|
1136
|
+
|
|
1137
|
+
// Handle 'chatPeerBlacklist' key values
|
|
1138
|
+
const handleChatPeerBlacklistChange = (data: JsonValue) => {
|
|
1139
|
+
// Whenever list changes :
|
|
1140
|
+
// - check if local peer is blocked or unblocked
|
|
1141
|
+
// - filter out messages of blocked peers
|
|
1142
|
+
if (Array.isArray(data)) {
|
|
1143
|
+
batch(() => {
|
|
1144
|
+
dispatch(setChatPeerBlacklist(data as string[]));
|
|
1145
|
+
dispatch(filterOutMsgsFromBlockedPeers(data as string[]));
|
|
1146
|
+
});
|
|
1147
|
+
}
|
|
1068
1148
|
};
|
|
1069
1149
|
|
|
1070
1150
|
// Getting value for 'spotlight' key by using `get` method on HMSSessionStore instance
|
|
@@ -1084,19 +1164,53 @@ export const useHMSSessionStoreListeners = (
|
|
|
1084
1164
|
)
|
|
1085
1165
|
);
|
|
1086
1166
|
|
|
1087
|
-
// Getting value for '
|
|
1167
|
+
// Getting value for 'pinnedMessages' key by using `get` method on HMSSessionStore instance
|
|
1168
|
+
hmsSessionStore
|
|
1169
|
+
.get('pinnedMessages')
|
|
1170
|
+
.then((data) => {
|
|
1171
|
+
console.log(
|
|
1172
|
+
'Session Store get `pinnedMessages` key value success: ',
|
|
1173
|
+
data
|
|
1174
|
+
);
|
|
1175
|
+
handlePinnedMessagesChange(data);
|
|
1176
|
+
})
|
|
1177
|
+
.catch((error) =>
|
|
1178
|
+
console.log(
|
|
1179
|
+
'Session Store get `pinnedMessages` key value error: ',
|
|
1180
|
+
error
|
|
1181
|
+
)
|
|
1182
|
+
);
|
|
1183
|
+
|
|
1184
|
+
// Getting value for 'chatState' key by using `get` method on HMSSessionStore instance
|
|
1185
|
+
hmsSessionStore
|
|
1186
|
+
.get('chatState')
|
|
1187
|
+
.then((data) => {
|
|
1188
|
+
console.log(
|
|
1189
|
+
'Session Store get `chatState` key value success: ',
|
|
1190
|
+
data
|
|
1191
|
+
);
|
|
1192
|
+
handleChatStateChange(data);
|
|
1193
|
+
})
|
|
1194
|
+
.catch((error) =>
|
|
1195
|
+
console.log(
|
|
1196
|
+
'Session Store get `chatState` key value error: ',
|
|
1197
|
+
error
|
|
1198
|
+
)
|
|
1199
|
+
);
|
|
1200
|
+
|
|
1201
|
+
// Getting value for 'chatPeerBlacklist' key by using `get` method on HMSSessionStore instance
|
|
1088
1202
|
hmsSessionStore
|
|
1089
|
-
.get('
|
|
1203
|
+
.get('chatPeerBlacklist')
|
|
1090
1204
|
.then((data) => {
|
|
1091
1205
|
console.log(
|
|
1092
|
-
'Session Store get `
|
|
1206
|
+
'Session Store get `chatPeerBlacklist` key value success: ',
|
|
1093
1207
|
data
|
|
1094
1208
|
);
|
|
1095
|
-
|
|
1209
|
+
handleChatPeerBlacklistChange(data);
|
|
1096
1210
|
})
|
|
1097
1211
|
.catch((error) =>
|
|
1098
1212
|
console.log(
|
|
1099
|
-
'Session Store get `
|
|
1213
|
+
'Session Store get `chatPeerBlacklist` key value error: ',
|
|
1100
1214
|
error
|
|
1101
1215
|
)
|
|
1102
1216
|
);
|
|
@@ -1104,66 +1218,44 @@ export const useHMSSessionStoreListeners = (
|
|
|
1104
1218
|
// let lastSpotlightValue: HMSSessionStoreValue = null;
|
|
1105
1219
|
// let lastPinnedMessageValue: HMSSessionStoreValue = null;
|
|
1106
1220
|
|
|
1107
|
-
// Add subscription for `spotlight` & `
|
|
1221
|
+
// Add subscription for `spotlight`, `pinnedMessages`, `chatState` & `chatPeerBlacklist` keys updates on Session Store
|
|
1108
1222
|
const subscription = hmsSessionStore.addKeyChangeListener<
|
|
1109
|
-
['spotlight', '
|
|
1110
|
-
>(
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1223
|
+
['spotlight', 'pinnedMessages', 'chatState', 'chatPeerBlacklist']
|
|
1224
|
+
>(
|
|
1225
|
+
['spotlight', 'pinnedMessages', 'chatState', 'chatPeerBlacklist'],
|
|
1226
|
+
(error, data) => {
|
|
1227
|
+
// If error occurs, handle error and return early
|
|
1228
|
+
if (error !== null) {
|
|
1229
|
+
console.log(
|
|
1230
|
+
'`spotlight`, `pinnedMessages`, `chatState` & `chatPeerBlacklist` key listener Error -> ',
|
|
1231
|
+
error
|
|
1232
|
+
);
|
|
1233
|
+
return;
|
|
1234
|
+
}
|
|
1119
1235
|
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
break;
|
|
1140
|
-
}
|
|
1141
|
-
case 'pinnedMessage': {
|
|
1142
|
-
handlePinnedMessageChange(data.value);
|
|
1143
|
-
|
|
1144
|
-
// Showing Toast message if value has actually changed
|
|
1145
|
-
// if (
|
|
1146
|
-
// data.value !== lastPinnedMessageValue &&
|
|
1147
|
-
// (data.value || lastPinnedMessageValue)
|
|
1148
|
-
// ) {
|
|
1149
|
-
// if (toastTimeoutId !== null) {
|
|
1150
|
-
// clearTimeout(toastTimeoutId);
|
|
1151
|
-
// }
|
|
1152
|
-
// toastTimeoutId = setTimeout(() => {
|
|
1153
|
-
// Toast.showWithGravity(
|
|
1154
|
-
// `SessionStore: \`pinnedMessage\` key's value changed to ${data.value}`,
|
|
1155
|
-
// Toast.LONG,
|
|
1156
|
-
// Toast.TOP
|
|
1157
|
-
// );
|
|
1158
|
-
// }, 1500);
|
|
1159
|
-
// }
|
|
1160
|
-
|
|
1161
|
-
// lastPinnedMessageValue = data.value;
|
|
1162
|
-
break;
|
|
1236
|
+
// If no error, handle data
|
|
1237
|
+
if (data !== null) {
|
|
1238
|
+
switch (data.key) {
|
|
1239
|
+
case 'spotlight': {
|
|
1240
|
+
handleSpotlightIdChange(data.value);
|
|
1241
|
+
break;
|
|
1242
|
+
}
|
|
1243
|
+
case 'pinnedMessages': {
|
|
1244
|
+
handlePinnedMessagesChange(data.value);
|
|
1245
|
+
break;
|
|
1246
|
+
}
|
|
1247
|
+
case 'chatState': {
|
|
1248
|
+
handleChatStateChange(data.value);
|
|
1249
|
+
break;
|
|
1250
|
+
}
|
|
1251
|
+
case 'chatPeerBlacklist': {
|
|
1252
|
+
handleChatPeerBlacklistChange(data.value);
|
|
1253
|
+
break;
|
|
1254
|
+
}
|
|
1163
1255
|
}
|
|
1164
1256
|
}
|
|
1165
1257
|
}
|
|
1166
|
-
|
|
1258
|
+
);
|
|
1167
1259
|
|
|
1168
1260
|
// Save reference of `subscription` in a ref
|
|
1169
1261
|
sessionStoreListenersRef.current.push(subscription);
|
|
@@ -1180,7 +1272,7 @@ export const useHMSSessionStoreListeners = (
|
|
|
1180
1272
|
// if (toastTimeoutId !== null) clearTimeout(toastTimeoutId);
|
|
1181
1273
|
};
|
|
1182
1274
|
}
|
|
1183
|
-
}, [hmsSessionStore]);
|
|
1275
|
+
}, [store, hmsSessionStore]);
|
|
1184
1276
|
};
|
|
1185
1277
|
|
|
1186
1278
|
export const useHMSSessionStore = () => {
|
|
@@ -2242,12 +2334,9 @@ export const useSendMessage = () => {
|
|
|
2242
2334
|
const chatWindowState = reduxStore.getState().chatWindow;
|
|
2243
2335
|
|
|
2244
2336
|
const message = chatWindowState.typedMessage;
|
|
2245
|
-
const sendingTo = chatWindowState.sendTo
|
|
2246
|
-
| HMSRole
|
|
2247
|
-
| HMSRemotePeer
|
|
2248
|
-
| typeof ChatBroadcastFilter;
|
|
2337
|
+
const sendingTo = chatWindowState.sendTo;
|
|
2249
2338
|
|
|
2250
|
-
if (message.length <= 0) return;
|
|
2339
|
+
if (message.length <= 0 || !sendingTo) return;
|
|
2251
2340
|
|
|
2252
2341
|
const hmsMessageRecipient = new HMSMessageRecipient({
|
|
2253
2342
|
recipientType:
|
|
@@ -2311,6 +2400,72 @@ export const useSendMessage = () => {
|
|
|
2311
2400
|
};
|
|
2312
2401
|
};
|
|
2313
2402
|
|
|
2403
|
+
export const useHMSCanDisableChat = () => {
|
|
2404
|
+
return useHMSChatLayoutConfig<boolean>(
|
|
2405
|
+
(chatLayoutConfig) =>
|
|
2406
|
+
chatLayoutConfig?.real_time_controls?.can_disable_chat ?? false
|
|
2407
|
+
);
|
|
2408
|
+
};
|
|
2409
|
+
|
|
2410
|
+
type ChatRecipients = {
|
|
2411
|
+
privateChat: boolean;
|
|
2412
|
+
publicChat: boolean;
|
|
2413
|
+
roles: HMSRole[];
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
export const useHMSChatRecipientSelector = (): ChatRecipients => {
|
|
2417
|
+
const roles = useSelector((state: RootState) => state.hmsStates.roles);
|
|
2418
|
+
|
|
2419
|
+
const defaultChatRecipient = useMemo(
|
|
2420
|
+
() => ({
|
|
2421
|
+
privateChat: false,
|
|
2422
|
+
publicChat: false,
|
|
2423
|
+
roles: [],
|
|
2424
|
+
}),
|
|
2425
|
+
[]
|
|
2426
|
+
);
|
|
2427
|
+
|
|
2428
|
+
const chatLayoutConfig = useHMSChatLayoutConfig(
|
|
2429
|
+
(_chatLayoutConfig) => _chatLayoutConfig
|
|
2430
|
+
);
|
|
2431
|
+
|
|
2432
|
+
const rolesWhitelist = chatLayoutConfig?.roles_whitelist;
|
|
2433
|
+
|
|
2434
|
+
const whitelistedRoles = useMemo(() => {
|
|
2435
|
+
if (!rolesWhitelist) {
|
|
2436
|
+
return defaultChatRecipient.roles;
|
|
2437
|
+
}
|
|
2438
|
+
return rolesWhitelist
|
|
2439
|
+
.map((roleStr) => roles.find((role) => role.name === roleStr))
|
|
2440
|
+
.filter((role): role is HMSRole => !!role);
|
|
2441
|
+
}, [roles, rolesWhitelist, defaultChatRecipient]);
|
|
2442
|
+
|
|
2443
|
+
const privateChat =
|
|
2444
|
+
chatLayoutConfig?.private_chat_enabled ?? defaultChatRecipient.privateChat;
|
|
2445
|
+
const publicChat =
|
|
2446
|
+
chatLayoutConfig?.public_chat_enabled ?? defaultChatRecipient.publicChat;
|
|
2447
|
+
|
|
2448
|
+
if (chatLayoutConfig) {
|
|
2449
|
+
return {
|
|
2450
|
+
privateChat,
|
|
2451
|
+
publicChat,
|
|
2452
|
+
roles: whitelistedRoles,
|
|
2453
|
+
};
|
|
2454
|
+
}
|
|
2455
|
+
|
|
2456
|
+
return defaultChatRecipient;
|
|
2457
|
+
};
|
|
2458
|
+
|
|
2459
|
+
export const useIsAllowedToSendMessage = () => {
|
|
2460
|
+
const chatRecipients = useHMSChatRecipientSelector();
|
|
2461
|
+
|
|
2462
|
+
return (
|
|
2463
|
+
chatRecipients.privateChat ||
|
|
2464
|
+
chatRecipients.publicChat ||
|
|
2465
|
+
chatRecipients.roles.length > 0
|
|
2466
|
+
);
|
|
2467
|
+
};
|
|
2468
|
+
|
|
2314
2469
|
export const useHMSChatLayoutConfig = <Selected = unknown>(
|
|
2315
2470
|
selector: (chatConfig: ChatConfig | null) => Selected,
|
|
2316
2471
|
equalityFn?: (left: Selected, right: Selected) => boolean
|
|
@@ -2388,8 +2543,13 @@ export const useSavePropsToStore = (
|
|
|
2388
2543
|
const { roomCode, options, onLeave, handleBackButton, autoEnterPipMode } =
|
|
2389
2544
|
props;
|
|
2390
2545
|
|
|
2546
|
+
dispatch(setPrebuiltData({ roomCode, options }));
|
|
2547
|
+
|
|
2391
2548
|
useEffect(() => {
|
|
2392
|
-
|
|
2549
|
+
const passedUserName = options?.userName;
|
|
2550
|
+
if (passedUserName && passedUserName.length > 0) {
|
|
2551
|
+
dispatch(setEditUsernameDisabled(true));
|
|
2552
|
+
}
|
|
2393
2553
|
}, [roomCode, options]);
|
|
2394
2554
|
|
|
2395
2555
|
useEffect(() => {
|
|
@@ -2423,7 +2583,7 @@ export const useStartRecording = () => {
|
|
|
2423
2583
|
addNotification({
|
|
2424
2584
|
id: Math.random().toString(16).slice(2),
|
|
2425
2585
|
type: NotificationTypes.ERROR,
|
|
2426
|
-
|
|
2586
|
+
title: error.message,
|
|
2427
2587
|
})
|
|
2428
2588
|
);
|
|
2429
2589
|
});
|
|
@@ -2435,6 +2595,185 @@ export const useStartRecording = () => {
|
|
|
2435
2595
|
};
|
|
2436
2596
|
};
|
|
2437
2597
|
|
|
2598
|
+
export const useHMSChatState = () => {
|
|
2599
|
+
const hmsSessionStore = useSelector(
|
|
2600
|
+
(state: RootState) => state.user.hmsSessionStore
|
|
2601
|
+
);
|
|
2602
|
+
const localPeerName = useSelector(
|
|
2603
|
+
(state: RootState) => state.hmsStates.localPeer?.name
|
|
2604
|
+
);
|
|
2605
|
+
const localPeerID = useSelector(
|
|
2606
|
+
(state: RootState) => state.hmsStates.localPeer?.peerID
|
|
2607
|
+
);
|
|
2608
|
+
const localPeerUserID = useSelector(
|
|
2609
|
+
(state: RootState) => state.hmsStates.localPeer?.customerUserID
|
|
2610
|
+
);
|
|
2611
|
+
const _chatState = useSelector((state: RootState) => state.app.chatState);
|
|
2612
|
+
|
|
2613
|
+
const chatState = useMemo(
|
|
2614
|
+
() => _chatState || ({ enabled: true } as const),
|
|
2615
|
+
[_chatState]
|
|
2616
|
+
);
|
|
2617
|
+
|
|
2618
|
+
const setChatState = useCallback(
|
|
2619
|
+
async (enabled: boolean) => {
|
|
2620
|
+
// If instance of HMSSessionStore is available
|
|
2621
|
+
if (hmsSessionStore) {
|
|
2622
|
+
try {
|
|
2623
|
+
const value = {
|
|
2624
|
+
enabled,
|
|
2625
|
+
updatedBy: {
|
|
2626
|
+
peerID: localPeerID ?? null,
|
|
2627
|
+
userID: localPeerUserID ?? null,
|
|
2628
|
+
userName: localPeerName ?? '',
|
|
2629
|
+
},
|
|
2630
|
+
updatedAt: Date.now(),
|
|
2631
|
+
};
|
|
2632
|
+
// set `value` on `session` with key 'chatState'
|
|
2633
|
+
const response = await hmsSessionStore.set(value, 'chatState');
|
|
2634
|
+
console.log('setSessionMetaData Response -> ', response);
|
|
2635
|
+
} catch (error) {
|
|
2636
|
+
console.log('setSessionMetaData Error -> ', error);
|
|
2637
|
+
}
|
|
2638
|
+
}
|
|
2639
|
+
},
|
|
2640
|
+
[localPeerName, hmsSessionStore, localPeerUserID, localPeerID]
|
|
2641
|
+
);
|
|
2642
|
+
|
|
2643
|
+
return { chatState, setChatState };
|
|
2644
|
+
};
|
|
2645
|
+
|
|
2646
|
+
export const useIsMessagePinned = (message: HMSMessage | null) => {
|
|
2647
|
+
return useSelector((state: RootState) =>
|
|
2648
|
+
message
|
|
2649
|
+
? state.messages.pinnedMessages.findIndex(
|
|
2650
|
+
(pinnedMessage) => pinnedMessage.id === message.messageId
|
|
2651
|
+
) >= 0
|
|
2652
|
+
: false
|
|
2653
|
+
);
|
|
2654
|
+
};
|
|
2655
|
+
|
|
2656
|
+
export const useHMSMessagePinningActions = () => {
|
|
2657
|
+
const store = useStore<RootState>();
|
|
2658
|
+
const hmsSessionStore = useSelector(
|
|
2659
|
+
(state: RootState) => state.user.hmsSessionStore
|
|
2660
|
+
);
|
|
2661
|
+
|
|
2662
|
+
const pinMessage = useCallback(
|
|
2663
|
+
async (message: HMSMessage | HMSMessage[]) => {
|
|
2664
|
+
let messages = message;
|
|
2665
|
+
if (!Array.isArray(messages)) {
|
|
2666
|
+
messages = [messages];
|
|
2667
|
+
}
|
|
2668
|
+
|
|
2669
|
+
// If instance of HMSSessionStore is available
|
|
2670
|
+
if (hmsSessionStore) {
|
|
2671
|
+
try {
|
|
2672
|
+
const reduxState = store.getState();
|
|
2673
|
+
const localPeerName = reduxState.hmsStates.localPeer?.name;
|
|
2674
|
+
const pinnedMessages = reduxState.messages.pinnedMessages;
|
|
2675
|
+
|
|
2676
|
+
let payload = messages.map((message) => ({
|
|
2677
|
+
authorId: message.sender?.customerUserID ?? '',
|
|
2678
|
+
id: message.messageId,
|
|
2679
|
+
pinnedBy: localPeerName ?? '',
|
|
2680
|
+
text: `${message.sender?.name}: ${message.message}`,
|
|
2681
|
+
}));
|
|
2682
|
+
|
|
2683
|
+
let updatedPinnedMessages = [...pinnedMessages, ...payload];
|
|
2684
|
+
|
|
2685
|
+
if (updatedPinnedMessages.length > 3) {
|
|
2686
|
+
updatedPinnedMessages = updatedPinnedMessages.slice(
|
|
2687
|
+
updatedPinnedMessages.length - 3
|
|
2688
|
+
);
|
|
2689
|
+
}
|
|
2690
|
+
|
|
2691
|
+
const response = await hmsSessionStore.set(
|
|
2692
|
+
updatedPinnedMessages,
|
|
2693
|
+
'pinnedMessages'
|
|
2694
|
+
);
|
|
2695
|
+
console.log('setSessionMetaData Response -> ', response);
|
|
2696
|
+
} catch (error) {
|
|
2697
|
+
console.log('setSessionMetaData Error -> ', error);
|
|
2698
|
+
return Promise.reject(error);
|
|
2699
|
+
}
|
|
2700
|
+
}
|
|
2701
|
+
},
|
|
2702
|
+
[hmsSessionStore]
|
|
2703
|
+
);
|
|
2704
|
+
|
|
2705
|
+
const unpinMessage = useCallback(
|
|
2706
|
+
async (
|
|
2707
|
+
message: HMSMessage | PinnedMessage | (HMSMessage | PinnedMessage)[]
|
|
2708
|
+
) => {
|
|
2709
|
+
let messages = message;
|
|
2710
|
+
if (!Array.isArray(messages)) {
|
|
2711
|
+
messages = [messages];
|
|
2712
|
+
}
|
|
2713
|
+
|
|
2714
|
+
// If instance of HMSSessionStore is available
|
|
2715
|
+
if (hmsSessionStore) {
|
|
2716
|
+
try {
|
|
2717
|
+
const pinnedMessages = store.getState().messages.pinnedMessages;
|
|
2718
|
+
const messageIdsToUnpin = messages.map((msg) =>
|
|
2719
|
+
'messageId' in msg ? msg.messageId : msg.id
|
|
2720
|
+
);
|
|
2721
|
+
const updatedPinnedMessages = pinnedMessages.filter(
|
|
2722
|
+
(pinnedMessage) => !messageIdsToUnpin.includes(pinnedMessage.id)
|
|
2723
|
+
);
|
|
2724
|
+
const response = await hmsSessionStore.set(
|
|
2725
|
+
updatedPinnedMessages,
|
|
2726
|
+
'pinnedMessages'
|
|
2727
|
+
);
|
|
2728
|
+
console.log('setSessionMetaData Response -> ', response);
|
|
2729
|
+
} catch (error) {
|
|
2730
|
+
console.log('setSessionMetaData Error -> ', error);
|
|
2731
|
+
return Promise.reject(error);
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2734
|
+
},
|
|
2735
|
+
[hmsSessionStore]
|
|
2736
|
+
);
|
|
2737
|
+
|
|
2738
|
+
return { pinMessage, unpinMessage };
|
|
2739
|
+
};
|
|
2740
|
+
|
|
2741
|
+
export const useSetDefaultChatRecipient = () => {
|
|
2742
|
+
const dispatch = useDispatch();
|
|
2743
|
+
const localPeerRoleName = useSelector(
|
|
2744
|
+
(state: RootState) => state.hmsStates.localPeer?.role?.name
|
|
2745
|
+
);
|
|
2746
|
+
|
|
2747
|
+
const {
|
|
2748
|
+
privateChat,
|
|
2749
|
+
publicChat,
|
|
2750
|
+
roles: whitelistedRoles,
|
|
2751
|
+
} = useHMSChatRecipientSelector();
|
|
2752
|
+
|
|
2753
|
+
useEffect(() => {
|
|
2754
|
+
if (publicChat) {
|
|
2755
|
+
dispatch({ type: 'SET_SENDTO', sendTo: ChatBroadcastFilter });
|
|
2756
|
+
}
|
|
2757
|
+
// If Role is enabled, Select a role
|
|
2758
|
+
else if (Array.isArray(whitelistedRoles) && whitelistedRoles.length > 0) {
|
|
2759
|
+
const roleObj =
|
|
2760
|
+
whitelistedRoles.length === 1
|
|
2761
|
+
? whitelistedRoles[0]
|
|
2762
|
+
: whitelistedRoles.filter(
|
|
2763
|
+
(whitelistRole) => whitelistRole.name !== localPeerRoleName
|
|
2764
|
+
)[0];
|
|
2765
|
+
|
|
2766
|
+
if (roleObj) {
|
|
2767
|
+
dispatch({ type: 'SET_SENDTO', sendTo: roleObj });
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
// If private is enabled, Select None
|
|
2771
|
+
else if (privateChat) {
|
|
2772
|
+
dispatch({ type: 'SET_SENDTO', sendTo: null });
|
|
2773
|
+
}
|
|
2774
|
+
}, [privateChat, publicChat, whitelistedRoles, localPeerRoleName, dispatch]);
|
|
2775
|
+
};
|
|
2776
|
+
|
|
2438
2777
|
export const useAndroidSoftInputAdjustResize = () => {
|
|
2439
2778
|
const currentSoftInputRef = useRef<null | SoftInputModes>(null);
|
|
2440
2779
|
|
|
@@ -2453,7 +2792,176 @@ export const useAndroidSoftInputAdjustResize = () => {
|
|
|
2453
2792
|
if (currentSoftInputRef.current !== null) {
|
|
2454
2793
|
setSoftInputMode(currentSoftInputRef.current);
|
|
2455
2794
|
}
|
|
2456
|
-
}
|
|
2795
|
+
};
|
|
2457
2796
|
}
|
|
2458
2797
|
}, []);
|
|
2459
2798
|
};
|
|
2799
|
+
|
|
2800
|
+
export const useKeyboardState = () => {
|
|
2801
|
+
const keyboardState = useSharedValue(KeyboardState.UNKNOWN);
|
|
2802
|
+
|
|
2803
|
+
useEffect(() => {
|
|
2804
|
+
let didShowTimeoutId: null | NodeJS.Timeout = null;
|
|
2805
|
+
let didHideTimeoutId: null | NodeJS.Timeout = null;
|
|
2806
|
+
|
|
2807
|
+
const didShowSubscription = Keyboard.addListener('keyboardDidShow', () => {
|
|
2808
|
+
keyboardState.value = KeyboardState.OPENING;
|
|
2809
|
+
if (didShowTimeoutId !== null) {
|
|
2810
|
+
clearTimeout(didShowTimeoutId);
|
|
2811
|
+
}
|
|
2812
|
+
didShowTimeoutId = setTimeout(() => {
|
|
2813
|
+
keyboardState.value = KeyboardState.OPEN;
|
|
2814
|
+
didShowTimeoutId = null;
|
|
2815
|
+
}, 400);
|
|
2816
|
+
});
|
|
2817
|
+
|
|
2818
|
+
const didHideSubscription = Keyboard.addListener('keyboardDidHide', () => {
|
|
2819
|
+
keyboardState.value = KeyboardState.CLOSING;
|
|
2820
|
+
if (didHideTimeoutId !== null) {
|
|
2821
|
+
clearTimeout(didHideTimeoutId);
|
|
2822
|
+
}
|
|
2823
|
+
didHideTimeoutId = setTimeout(() => {
|
|
2824
|
+
keyboardState.value = KeyboardState.CLOSED;
|
|
2825
|
+
didHideTimeoutId = null;
|
|
2826
|
+
}, 400);
|
|
2827
|
+
});
|
|
2828
|
+
|
|
2829
|
+
return () => {
|
|
2830
|
+
if (didShowTimeoutId !== null) {
|
|
2831
|
+
clearTimeout(didShowTimeoutId);
|
|
2832
|
+
}
|
|
2833
|
+
if (didHideTimeoutId !== null) {
|
|
2834
|
+
clearTimeout(didHideTimeoutId);
|
|
2835
|
+
}
|
|
2836
|
+
if ('remove' in didShowSubscription) {
|
|
2837
|
+
didShowSubscription.remove();
|
|
2838
|
+
} else {
|
|
2839
|
+
Keyboard.removeSubscription(didShowSubscription);
|
|
2840
|
+
}
|
|
2841
|
+
if ('remove' in didHideSubscription) {
|
|
2842
|
+
didHideSubscription.remove();
|
|
2843
|
+
} else {
|
|
2844
|
+
Keyboard.removeSubscription(didHideSubscription);
|
|
2845
|
+
}
|
|
2846
|
+
};
|
|
2847
|
+
}, []);
|
|
2848
|
+
|
|
2849
|
+
return { keyboardState };
|
|
2850
|
+
};
|
|
2851
|
+
|
|
2852
|
+
export const useAllowPinningMessage = () => {
|
|
2853
|
+
return useHMSChatLayoutConfig(
|
|
2854
|
+
(config) => config?.allow_pinning_messages ?? false
|
|
2855
|
+
);
|
|
2856
|
+
};
|
|
2857
|
+
|
|
2858
|
+
export const useIsLocalPeerBlockedFromChat = () => {
|
|
2859
|
+
return useSelector((state: RootState) => {
|
|
2860
|
+
const chatPeerBlacklist = state.app.chatPeerBlacklist;
|
|
2861
|
+
const localPeerUserId = state.hmsStates.localPeer?.customerUserID;
|
|
2862
|
+
|
|
2863
|
+
return localPeerUserId
|
|
2864
|
+
? chatPeerBlacklist.includes(localPeerUserId)
|
|
2865
|
+
: false;
|
|
2866
|
+
});
|
|
2867
|
+
};
|
|
2868
|
+
|
|
2869
|
+
export const useIsPeerBlocked = (peer: HMSPeer | null) => {
|
|
2870
|
+
return useSelector((state: RootState) => {
|
|
2871
|
+
const chatPeerBlacklist = state.app.chatPeerBlacklist;
|
|
2872
|
+
const localPeerUserId = peer?.customerUserID;
|
|
2873
|
+
|
|
2874
|
+
return localPeerUserId
|
|
2875
|
+
? chatPeerBlacklist.includes(localPeerUserId)
|
|
2876
|
+
: false;
|
|
2877
|
+
});
|
|
2878
|
+
};
|
|
2879
|
+
|
|
2880
|
+
export const useBlockPeerActions = () => {
|
|
2881
|
+
const store = useStore<RootState>();
|
|
2882
|
+
const hmsSessionStore = useSelector(
|
|
2883
|
+
(state: RootState) => state.user.hmsSessionStore
|
|
2884
|
+
);
|
|
2885
|
+
const { unpinMessage } = useHMSMessagePinningActions();
|
|
2886
|
+
|
|
2887
|
+
const blockPeer = useCallback(
|
|
2888
|
+
async (peer: HMSPeer) => {
|
|
2889
|
+
// If instance of HMSSessionStore is available
|
|
2890
|
+
if (hmsSessionStore) {
|
|
2891
|
+
try {
|
|
2892
|
+
const reduxState = store.getState();
|
|
2893
|
+
const chatPeerBlacklist = reduxState.app.chatPeerBlacklist;
|
|
2894
|
+
const pinnedMessages = reduxState.messages.pinnedMessages;
|
|
2895
|
+
|
|
2896
|
+
if (
|
|
2897
|
+
peer.customerUserID &&
|
|
2898
|
+
!chatPeerBlacklist.includes(peer.customerUserID)
|
|
2899
|
+
) {
|
|
2900
|
+
let updatedChatPeerBlacklist = [
|
|
2901
|
+
...chatPeerBlacklist,
|
|
2902
|
+
peer.customerUserID,
|
|
2903
|
+
];
|
|
2904
|
+
const response = await hmsSessionStore.set(
|
|
2905
|
+
updatedChatPeerBlacklist,
|
|
2906
|
+
'chatPeerBlacklist'
|
|
2907
|
+
);
|
|
2908
|
+
console.log('setSessionMetaData Response -> ', response);
|
|
2909
|
+
|
|
2910
|
+
// Unpin messages from sent by the peer
|
|
2911
|
+
const msgsToUnpin = pinnedMessages.filter(
|
|
2912
|
+
(pinnedMessage) => pinnedMessage.authorId === peer.customerUserID
|
|
2913
|
+
);
|
|
2914
|
+
if (msgsToUnpin.length > 0) {
|
|
2915
|
+
await unpinMessage(msgsToUnpin);
|
|
2916
|
+
}
|
|
2917
|
+
|
|
2918
|
+
return response;
|
|
2919
|
+
}
|
|
2920
|
+
return Promise.reject('Peer is already blocked!');
|
|
2921
|
+
} catch (error) {
|
|
2922
|
+
console.log('setSessionMetaData Error -> ', error);
|
|
2923
|
+
return Promise.reject(error);
|
|
2924
|
+
}
|
|
2925
|
+
}
|
|
2926
|
+
},
|
|
2927
|
+
[hmsSessionStore, unpinMessage]
|
|
2928
|
+
);
|
|
2929
|
+
|
|
2930
|
+
const unblockPeer = useCallback(
|
|
2931
|
+
async (peer: HMSPeer) => {
|
|
2932
|
+
// If instance of HMSSessionStore is available
|
|
2933
|
+
if (hmsSessionStore) {
|
|
2934
|
+
try {
|
|
2935
|
+
const chatPeerBlacklist = store.getState().app.chatPeerBlacklist;
|
|
2936
|
+
if (
|
|
2937
|
+
peer.customerUserID &&
|
|
2938
|
+
chatPeerBlacklist.includes(peer.customerUserID)
|
|
2939
|
+
) {
|
|
2940
|
+
const updatedChatPeerBlacklist = chatPeerBlacklist.filter(
|
|
2941
|
+
(peerUserId) => peerUserId !== peer.customerUserID
|
|
2942
|
+
);
|
|
2943
|
+
const response = await hmsSessionStore.set(
|
|
2944
|
+
updatedChatPeerBlacklist,
|
|
2945
|
+
'chatPeerBlacklist'
|
|
2946
|
+
);
|
|
2947
|
+
console.log('setSessionMetaData Response -> ', response);
|
|
2948
|
+
return response;
|
|
2949
|
+
}
|
|
2950
|
+
return Promise.reject('Peer is already unblocked!');
|
|
2951
|
+
} catch (error) {
|
|
2952
|
+
console.log('setSessionMetaData Error -> ', error);
|
|
2953
|
+
return Promise.reject(error);
|
|
2954
|
+
}
|
|
2955
|
+
}
|
|
2956
|
+
},
|
|
2957
|
+
[hmsSessionStore]
|
|
2958
|
+
);
|
|
2959
|
+
|
|
2960
|
+
return { blockPeer, unblockPeer };
|
|
2961
|
+
};
|
|
2962
|
+
|
|
2963
|
+
export const useAllowBlockingPeerFromChat = () => {
|
|
2964
|
+
return useHMSChatLayoutConfig(
|
|
2965
|
+
(config) => config?.real_time_controls?.can_block_user ?? false
|
|
2966
|
+
);
|
|
2967
|
+
};
|