import { useEffect } from "react"; import { BrowserRouter, Navigate, Outlet, Route, Routes } from "react-router-dom"; import { Layout } from "@/components/layout/Layout"; import { Login } from "@/pages/Login"; import { Dashboard } from "@/pages/Dashboard"; import { Stacks } from "@/pages/Stacks"; import { StackDetail } from "@/pages/StackDetail"; import { StackEditor } from "@/pages/StackEditor"; import { RemoteStackDetail } from "@/pages/RemoteStackDetail"; import { Images } from "@/pages/Images"; import { Templates } from "@/pages/Templates"; import { Settings } from "@/pages/Settings"; import { Audit } from "@/pages/Audit"; import { Networks } from "@/pages/Networks"; import { useAuthStore } from "@/store/auth"; import { useThemeStore } from "@/store/theme"; function RequireAuth() { const token = useAuthStore((s) => s.accessToken); return token ? : ; } export default function App() { const applyTheme = useThemeStore((s) => s.apply); const fetchMe = useAuthStore((s) => s.fetchMe); const token = useAuthStore((s) => s.accessToken); useEffect(() => { applyTheme(); }, [applyTheme]); useEffect(() => { if (token) fetchMe().catch(() => {}); }, [token, fetchMe]); return ( } /> }> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); }