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