"use client"; import { useEffect, useState } from "preact/hooks"; import { authClient } from "../../lib/auth-client"; type SessionData = NonNullable>["data"]>; export default function DashboardPage() { const [session, setSession] = useState(null); const [pending, setPending] = useState(true); const [error, setError] = useState(null); useEffect(() => { let active = true; authClient .getSession() .then((response) => { if (!active) return; if (response.error || !response.data?.user) { window.location.replace("/sign-in"); return; } setSession(response.data); setPending(false); }) .catch(() => window.location.replace("/sign-in")); return () => { active = false; }; }, []); async function signOut() { setPending(true); setError(null); const response = await authClient.signOut(); if (response.error) { setError(response.error.message ?? "Could not sign out."); setPending(false); return; } window.location.assign("/"); } if (!session) { return (
Verifying protected session
); } return (
PROTECTED / MIDDLEWARE VERIFIED

Welcome back, {session.user.name}.

{session.user.email}

{error ? {error} : null}
); }