import React, { useCallback, useState } from 'react'; import { selectHLSState, useHMSActions, useHMSStore, useRecordingStreaming } from '@100mslive/react-sdk'; import { Button } from '../../../Button'; import { Flex } from '../../../Layout'; import { Dialog } from '../../../Modal'; import { Text } from '../../../Text'; // @ts-ignore: No implicit Any import { useSetAppDataByKey } from '../AppData/useUISettings'; // @ts-ignore: No implicit Any import { APP_DATA } from '../../common/constants'; export function HLSFailureModal() { const hlsError = useHMSStore(selectHLSState).error || false; const [openModal, setOpenModal] = useState(!!hlsError); const hmsActions = useHMSActions(); const { isRTMPRunning } = useRecordingStreaming(); const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted); const startHLS = useCallback(async () => { try { if (isHLSStarted || isRTMPRunning) { return; } setHLSStarted(true); await hmsActions.startHLSStreaming({}); } catch (error) { console.error(error); setHLSStarted(false); } }, [hmsActions, isHLSStarted, setHLSStarted, isRTMPRunning]); return hlsError ? ( { if (!value) { setOpenModal(false); } }} > Failed to Go Live Something went wrong and your live broadcast failed. Please try again. ) : null; }