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.

40 lines 1.63 kB
import * as React from 'react'; import { useSelector } from 'react-redux'; import { useHMSActions } from '../hooks-sdk'; import { PressableIcon } from './PressableIcon'; import { HandIcon } from '../Icons'; import { parseMetadata } from '../utils/functions'; import { TestIds } from '../utils/constants'; export const HMSManageRaiseHand = () => { const hmsActions = useHMSActions(); const localPeerMetadata = useSelector(state => { var _state$hmsStates$loca; return (_state$hmsStates$loca = state.hmsStates.localPeer) === null || _state$hmsStates$loca === void 0 ? void 0 : _state$hmsStates$loca.metadata; }); const parsedLocalPeerMetadata = parseMetadata(localPeerMetadata); const isBRBOn = !!parsedLocalPeerMetadata.isBRBOn; const isHandRaised = useSelector(state => { var _state$hmsStates$loca2; return !!((_state$hmsStates$loca2 = state.hmsStates.localPeer) !== null && _state$hmsStates$loca2 !== void 0 && _state$hmsStates$loca2.isHandRaised); }); const toggleRaiseHand = async () => { if (isBRBOn) { const newMetadata = { ...parsedLocalPeerMetadata, isBRBOn: false }; await hmsActions.changeMetadata(newMetadata); } if (isHandRaised) { await hmsActions.lowerLocalPeerHand(); } else { await hmsActions.raiseLocalPeerHand(); } }; return /*#__PURE__*/React.createElement(PressableIcon, { testID: isHandRaised ? TestIds.hand_raised_btn : TestIds.hand_raise_btn, onPress: toggleRaiseHand, active: isHandRaised }, /*#__PURE__*/React.createElement(HandIcon, null)); }; //# sourceMappingURL=HMSManageRaiseHand.js.map