"use client"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { loginUser } from "@/actions/user"; type Feedback = { kind: "error" | "info"; message: string }; export default function Login() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [feedback, setFeedback] = useState(); const router = useRouter(); const login = async () => { setFeedback(undefined); try { await loginUser(email, password); setFeedback({ kind: "info", message: "Login successful! Redirecting...", }); router.push("/chat"); } catch (err: any) { setFeedback({ kind: "error", message: err.response?.data?.message || "Login failed. Please try again.", }); } }; return ( <> Login Email setEmail(e.target.value)} type="email" /> Password setPassword(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") login(); }} type="password" /> {feedback && (
{feedback.message}
)}
); }