import { useEffect, useState } from 'react'; import { clsm } from '../../utils'; import { Provider as NotificationProvider } from '../../contexts/Notification'; import { Provider as PollProvider } from '../../contexts/StreamManagerActions/Poll'; import { Provider as ChatProvider } from '../../contexts/Chat'; import { Provider as StreamManagerActionsProvider } from '../../contexts/StreamManagerActions'; import { Provider as StreamManagerWebBroadcastProvider } from '../../contexts/Broadcast'; import { useRef } from 'react'; import { useStreams } from '../../contexts/Streams'; import { useUser } from '../../contexts/User'; import Notification from '../../components/Notification'; import StatusBar from '../../components/StatusBar'; import StreamManagerControlCenter from './StreamManagerControlCenter'; import useStreamSessionData from '../../contexts/Streams/useStreamSessionData'; import withVerticalScroller from '../../components/withVerticalScroller'; const StreamManager = () => { const { isLive, streamSessions, setStreamSessions } = useStreams(); const { updateStreamSessionDataFetchKey } = useStreamSessionData({ isLive, setStreamSessions, streamSessions }); const { userData } = useUser(); const { ingestEndpoint, streamKeyValue: streamKey } = userData || {}; const previewRef = useRef(); const [isWebBroadcastAnimating, setIsWebBroadcastAnimating] = useState(false); useEffect(() => { if (isLive) { const latestStreamSession = streamSessions[0]; updateStreamSessionDataFetchKey(latestStreamSession); } }, [isLive, streamSessions, updateStreamSessionDataFetchKey]); return (