"use client"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { useAuthContext } from "@/hooks/auth-context"; export default function LoginPage() { const router = useRouter(); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [remember, setRemember] = useState(true); const [error, setError] = useState(""); const { checkSession, login, loading } = useAuthContext(); const [checking, setChecking] = useState(true); useEffect(() => { let active = true; async function runCheckSession() { try { const user = await checkSession(); if (!active) return; if (user) { router.replace("/"); return; } } finally { if (active) setChecking(false); } } runCheckSession(); return () => { active = false; }; }, [router, checkSession]); function validate() { if (!email.trim()) return "Email is required"; if (!email.includes("@")) return "Enter a valid email"; if (!password) return "Password is required"; return ""; } async function onSubmit(e: React.FormEvent) { e.preventDefault(); const validationError = validate(); if (validationError) { setError(validationError); return; } setError(""); const result = await login({ email, password, remember }); if (!result.ok) { setError(result.error || "Login failed"); return; } router.replace("/"); } return (

Login

{checking ? (
Checking session...
) : null}
e.preventDefault()} className="text-[color:var(--color-accent)]" > Forgot password?
{error ?
{error}
: null}
No account?{" "} Register
); }