"use client"; import { useState } from "react"; import { signIn } from "next-auth/react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { useI18n } from "@/lib/i18n"; import { useTheme } from "@/app/providers"; import { LanguageSelector } from "@/components/ui/LanguageSelector"; export default function RegisterPage() { const router = useRouter(); const { t } = useI18n(); const { theme, toggleTheme } = useTheme(); const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(""); setLoading(true); try { const res = await fetch("/api/auth/register", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name, email, password }), }); if (!res.ok) { let msg = "Registration failed."; try { const data = await res.json(); msg = data.error || msg; } catch { msg = "Database connection failed. Please ensure PostgreSQL is running or use Demo Mode."; } setError(msg); setLoading(false); return; } await signIn("credentials", { email, password, redirect: false }); router.push("/"); } catch { setError("Network or server error. Check database status or try Demo Mode."); setLoading(false); } }; return (
{t("createAccountSubtitle")}
{/* Demo Mode Action Banner */}Explore full 3-panel UI, sub-tasks, and markdown notes directly in browser storage.
🚀 {t("tryDemoMode")}{t("alreadyHaveAccount")}{" "} {t("signIn")}