"use client"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { ImmbotLogo, UqoLogo } from "@/components/logo"; import { Button, Card, Input, Label, Spinner } from "@/components/ui"; export default function LoginPage() { const router = useRouter(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); async function submit(e: React.FormEvent) { e.preventDefault(); setError(null); setLoading(true); try { const res = await fetch("/api/auth/login", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ username, password }), }); const data = await res.json(); if (!res.ok) { setError(data.error ?? "Erreur de connexion."); return; } router.push(data.mustChangePassword ? "/changer-mot-de-passe?force=1" : "/chat"); router.refresh(); } catch { setError("Impossible de joindre le serveur."); } finally { setLoading(false); } } return (

Connexion

Accédez à vos cours d'évaluation immobilière.

setUsername(e.target.value)} autoComplete="username" autoFocus required />
setPassword(e.target.value)} autoComplete="current-password" required />
{error &&

{error}

}

Pas de compte ? S'inscrire

); }