import { useEffect } from "react"; import { HashRouter, Routes, Route, useNavigate } from "react-router-dom"; import { TooltipProvider } from "@/components/ui/tooltip"; import { useAuthStore } from "@/stores/auth-store"; import { LoginPage } from "@/features/auth/login-page"; import { QueryClient, QueryClientProvider, } from '@tanstack/react-query' import SettingsPage from "@/features/settings-page"; import AudioVideoSettingsPage from "@/features/settings/audio-video-settings-page"; import NetworkSelector from "@/features/network-selector"; import NetworkRoot from "@/features/network-root"; import ParticleViewResolver from "@/features/particles/particle-view-resolver"; import Layout from "@/features/layout"; import NetworkSettingsPage from "@/features/network-settings"; import { Toaster } from "@/components/ui/sonner"; import { PusherProvider } from "@/lib/pusher-provider"; const queryClient = new QueryClient(); const App = () => { const status = useAuthStore((s) => s.status); const restoreSession = useAuthStore((s) => s.restoreSession); useEffect(() => { restoreSession(); }, [restoreSession]); if (status === "idle" || status === "restoring") { return (

Loading...

); } if (status !== "authenticated") { return ; } return ( ); }; function AutoplayNavigationListener() { const navigate = useNavigate(); useEffect(() => { return window.electronAutoplay.onNavigate((data) => { navigate(`/${data.networkId}/${data.streamId}`); }); }, [navigate]); return null; } function AuthenticatedApp() { return ( } /> } /> } /> } /> } /> } /> ); } const AppWithProviders = () => ( ); export default AppWithProviders;