@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.
32 lines • 1.12 kB
JavaScript
import * as React from 'react';
import { useDispatch, useSelector, useStore } from 'react-redux';
import { HMSInstanceSetup } from './HMSInstanceSetup';
import { HMSRoomSetup } from './HMSRoomSetup';
import { MeetingState } from './types';
import { clearStore } from './redux/actions';
export const HMSContainer = () => {
const store = useStore();
const dispatch = useDispatch();
const hmsInstance = useSelector(state => state.user.hmsInstance);
React.useEffect(() => {
if (hmsInstance) {
const cleanup = async () => {
const userExited = store.getState().app.meetingState === MeetingState.EXITED;
if (!userExited) {
await hmsInstance.leave();
await hmsInstance.destroy();
}
dispatch(clearStore());
};
return () => {
cleanup();
};
}
}, [hmsInstance, store]);
const isHMSInstanceAvailable = !!hmsInstance;
if (isHMSInstanceAvailable) {
return /*#__PURE__*/React.createElement(HMSRoomSetup, null);
}
return /*#__PURE__*/React.createElement(HMSInstanceSetup, null);
};
//# sourceMappingURL=HMSContainer.js.map