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