// layout/MainLayout.jsx import Sidebar from '../components/Sidebar' import Topbar from '../components/Topbar' import { Outlet } from 'react-router-dom'; import {useEffect, useState} from "react"; import type {User} from "../utils/types"; import { getUser, getStreamStatus } from "../utils/endpoints"; const MainLayout = () => { const [sidebarToggled, setSidebarToggled] = useState(false); const [user, setUser] = useState(null); const [isStreaming, setIsStreaming] = useState(false); const fetchUser = async () => { try { const userData = await getUser(); setUser(userData); } catch (error) { console.error('Failed to fetch user:', error); } }; useEffect(() => { fetchUser(); }, []); useEffect(() => { if (!user) return; const poll = () => getStreamStatus().then(setIsStreaming).catch(() => {}); poll(); const interval = setInterval(poll, 10000); return () => clearInterval(interval); }, [user]); return (
); }; export default MainLayout;