Unknown page.
/** App entry: auth gate, hash router, toast + pending resolve hosts. */ import { render } from "preact"; import { useCallback, useEffect, useState } from "preact/hooks"; import { getMe } from "./api"; import { PendingResolveProvider } from "./components/PendingResolve"; import { TabBar } from "./components/TabBar"; import { ToastProvider } from "./components/Toast"; import { Home } from "./pages/Home"; import { History } from "./pages/History"; import { EntryDetail } from "./pages/EntryDetail"; import { Daily } from "./pages/Daily"; import { Plan } from "./pages/Plan"; import { Stats } from "./pages/Stats"; import { Remedies } from "./pages/Remedies"; import { Coach } from "./pages/Coach"; import { Settings } from "./pages/Settings"; import { Log } from "./pages/Log"; import { Login } from "./pages/Login"; import { navigate, useRoute } from "./router"; import "./styles/app.css"; function App() { const route = useRoute(); const [ready, setReady] = useState(false); const [authenticated, setAuthenticated] = useState(false); const [appName, setAppName] = useState("Habit Journal"); const refreshAuth = useCallback(async () => { try { const me = await getMe(); setAuthenticated(me.authenticated); setAppName(me.app_name || "Habit Journal"); return me.authenticated; } catch { setAuthenticated(false); return false; } finally { setReady(true); } }, []); useEffect(() => { void refreshAuth(); }, [refreshAuth]); useEffect(() => { if (!ready) return; if (!authenticated && route.name !== "login") { navigate("/login"); } }, [ready, authenticated, route.name]); if (!ready) { return
Unknown page.