import React from 'react'; import { Routes, Route, Navigate, useSearchParams } from 'react-router-dom'; import { LoginPage } from './components/auth/LoginPage'; import { RegisterPage } from './components/auth/RegisterPage'; import { AppLayout } from './components/layout/AppLayout'; import { JoinPage } from './components/JoinPage'; import { SwAutoUpdate } from './components/ui/SwUpdatePrompt'; import { ScreenSharePicker } from './components/voice/ScreenSharePicker'; import { useAuthStore } from './stores/authStore'; import { isElectron } from './platform/platform'; function ProtectedRoute({ children }: { children: React.ReactNode }) { const token = useAuthStore((s) => s.token); if (!token) return ; return <>{children}; } function AuthRedirect({ children }: { children: React.ReactNode }) { const token = useAuthStore((s) => s.token); const [searchParams] = useSearchParams(); const redirect = searchParams.get('redirect'); if (token) { if (redirect && redirect.startsWith('/') && !redirect.startsWith('//')) { return ; } return ; } return <>{children}; } export function App() { const showTitleBar = isElectron(); return (
{showTitleBar && <>
}
} /> } /> } /> } /> } /> } /> } />
); }