import { useEffect } from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; import { useAuthStore } from '@/store/auth-store'; import { apiClient } from '@/lib/api-client'; import { MainLayout } from '@/components/layout/main-layout'; import { AuthLayout } from '@/components/layout/auth-layout'; import { ProtectedRoute } from '@/components/layout/protected-route'; // Pages import { LoginPage } from '@/pages/auth/login'; import { RegisterPage } from '@/pages/auth/register'; import { DashboardPage } from '@/pages/dashboard'; import { WebsitesPage } from '@/pages/websites'; import { WebsiteDetailPage } from '@/pages/websites/[id]'; import { ScansPage } from '@/pages/scans'; import { ScanDetailPage } from '@/pages/scans/[id]'; import { ReportsPage } from '@/pages/reports'; import { SettingsPage } from '@/pages/settings'; function App() { const { setAuth, setLoading, token } = useAuthStore(); useEffect(() => { const initAuth = async () => { if (!token) { setLoading(false); return; } try { const user = await apiClient.getMe(); setAuth(user, token); } catch (error) { console.error('Auth check failed:', error); setLoading(false); } }; initAuth(); }, [token, setAuth, setLoading]); return ( {/* Auth routes */} }> } /> } /> {/* Protected routes */} }> }> } /> } /> } /> } /> } /> } /> } /> } /> {/* 404 */} } /> ); } export default App;