UNPKG

@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.

29 lines 1.84 kB
import * as React from 'react'; import { View } from 'react-native'; import { useHMSConferencingScreenConfig, useHMSLayoutConfig } from '../hooks-util'; import { HMSManageRaiseHand } from './HMSManageRaiseHand'; import { useCanPublishAudio, useCanPublishScreen, useCanPublishVideo } from '../hooks-sdk'; export const HLSHandRaiseButton = () => { const canPublishAudio = useCanPublishAudio(); const canPublishVideo = useCanPublishVideo(); const canPublishScreen = useCanPublishScreen(); const canRaiseHand = useHMSConferencingScreenConfig(confScreenConfig => { var _confScreenConfig$ele; return !!(confScreenConfig !== null && confScreenConfig !== void 0 && (_confScreenConfig$ele = confScreenConfig.elements) !== null && _confScreenConfig$ele !== void 0 && _confScreenConfig$ele.hand_raise); }); const isOnStage = useHMSLayoutConfig(layoutConfig => { var _layoutConfig$screens; return !!(layoutConfig !== null && layoutConfig !== void 0 && (_layoutConfig$screens = layoutConfig.screens) !== null && _layoutConfig$screens !== void 0 && (_layoutConfig$screens = _layoutConfig$screens.conferencing) !== null && _layoutConfig$screens !== void 0 && (_layoutConfig$screens = _layoutConfig$screens.default) !== null && _layoutConfig$screens !== void 0 && (_layoutConfig$screens = _layoutConfig$screens.elements) !== null && _layoutConfig$screens !== void 0 && _layoutConfig$screens.on_stage_exp); }); const isViewer = !(canPublishAudio || canPublishVideo || canPublishScreen); const canShowHandRaiseInFooter = canRaiseHand && !isOnStage && isViewer; if (!canShowHandRaiseInFooter) { return null; } return /*#__PURE__*/React.createElement(View, { style: { marginLeft: 12 } }, /*#__PURE__*/React.createElement(HMSManageRaiseHand, null)); }; //# sourceMappingURL=HLSHandRaiseButton.js.map