@100mslive/react-native-room-kit
Version:
100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.
115 lines • 5.92 kB
JavaScript
import * as React from 'react';
import { View } from 'react-native';
import { HMSAudioMixingMode, HMSAudioMode } from '@100mslive/react-native-hms';
import { PressableIcon } from './PressableIcon';
import { HamburgerIcon } from '../Icons';
import { DefaultModal } from './DefaultModal';
import { RoomSettingsModalContent } from './RoomSettingsModalContent';
import { ChangeAudioMixingModeModal, ChangeAudioModeModal, ChangeAudioOutputModal, ChangeBulkRoleModal, ChangeTrackStateForRoleModal, HlsStreamingModal, RecordingModal, RtcStatsModal } from './Modals';
import { ModalTypes } from '../utils/types';
import { useModalType } from '../hooks-util';
import { BottomSheet } from './BottomSheet';
import { ChangeNameModalContent } from './ChangeNameModalContent';
import { StopRecordingModalContent } from './StopRecordingModalContent';
import { TestIds } from '../utils/constants';
import { PollsAndQuizBottomSheet } from './PollsAndQuizBottomSheet';
import { VirtualBackgroundBottomSheet } from './VirtualBackgroundBottomSheet';
import { CaptionsModalContent } from './CaptionsModalContent';
export const HMSRoomOptions = () => {
const {
modalVisibleType: modalVisible,
handleModalVisibleType: setModalVisible
} = useModalType();
const [isAudioShared, setIsAudioShared] = React.useState(false);
const [audioMode, setAudioMode] = React.useState(HMSAudioMode.MODE_NORMAL);
const [muteAllTracksAudio, setMuteAllTracksAudio] = React.useState(false);
const [audioDeviceChangeListener, setAudioDeviceChangeListener] = React.useState(false);
const [newAudioMixingMode, setNewAudioMixingMode] = React.useState(HMSAudioMixingMode.TALK_AND_MUSIC);
const onSettingsPress = () => setModalVisible(ModalTypes.SETTINGS);
const dismissModal = () => setModalVisible(ModalTypes.DEFAULT);
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(PressableIcon, {
testID: TestIds.room_options_btn,
onPress: onSettingsPress
}, /*#__PURE__*/React.createElement(HamburgerIcon, null)), /*#__PURE__*/React.createElement(BottomSheet, {
isVisible: modalVisible === ModalTypes.SETTINGS,
dismissModal: dismissModal
}, /*#__PURE__*/React.createElement(RoomSettingsModalContent, {
newAudioMixingMode: newAudioMixingMode,
audioDeviceListenerAdded: audioDeviceChangeListener,
isAudioShared: isAudioShared,
muteAllTracksAudio: muteAllTracksAudio,
closeRoomSettingsModal: dismissModal,
setModalVisible: setModalVisible,
setAudioDeviceListenerAdded: setAudioDeviceChangeListener,
setIsAudioShared: setIsAudioShared,
setMuteAllTracksAudio: setMuteAllTracksAudio
})), /*#__PURE__*/React.createElement(PollsAndQuizBottomSheet, null), /*#__PURE__*/React.createElement(VirtualBackgroundBottomSheet, null), /*#__PURE__*/React.createElement(BottomSheet, {
isVisible: modalVisible === ModalTypes.CLOSED_CAPTIONS_CONTROL,
dismissModal: dismissModal
}, /*#__PURE__*/React.createElement(CaptionsModalContent, {
dismissModal: dismissModal
})), /*#__PURE__*/React.createElement(BottomSheet, {
isVisible: modalVisible === ModalTypes.CHANGE_NAME,
dismissModal: dismissModal,
avoidKeyboard: true
}, /*#__PURE__*/React.createElement(ChangeNameModalContent, {
dismissModal: dismissModal
})), /*#__PURE__*/React.createElement(BottomSheet, {
isVisible: modalVisible === ModalTypes.STOP_RECORDING,
dismissModal: dismissModal
}, /*#__PURE__*/React.createElement(StopRecordingModalContent, {
dismissModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
animationIn: 'slideInUp',
animationOut: 'slideOutDown',
modalVisible: modalVisible === ModalTypes.RTC_STATS,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(RtcStatsModal, null)), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.RECORDING,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(RecordingModal, {
setModalVisible: setModalVisible
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.HLS_STREAMING,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(HlsStreamingModal, {
cancelModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.CHANGE_TRACK_ROLE,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(ChangeTrackStateForRoleModal, {
cancelModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.SWITCH_AUDIO_OUTPUT,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(ChangeAudioOutputModal, {
cancelModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.CHANGE_AUDIO_MODE,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(ChangeAudioModeModal, {
audioMode: audioMode,
setAudioMode: setAudioMode,
cancelModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.AUDIO_MIXING_MODE,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(ChangeAudioMixingModeModal, {
newAudioMixingMode: newAudioMixingMode,
setNewAudioMixingMode: setNewAudioMixingMode,
cancelModal: dismissModal
})), /*#__PURE__*/React.createElement(DefaultModal, {
modalPosiion: "center",
modalVisible: modalVisible === ModalTypes.BULK_ROLE_CHANGE,
setModalVisible: dismissModal
}, /*#__PURE__*/React.createElement(ChangeBulkRoleModal, {
cancelModal: dismissModal
})));
};
//# sourceMappingURL=HMSRoomOptions.js.map