"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { signIn } from "next-auth/react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { api } from "@/lib/api"; export default function RegisterPage() { const router = useRouter(); const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (password !== confirmPassword) { setError("两次输入的密码不一致"); return; } setLoading(true); setError(""); try { await api.auth.register({ name, email, password }); const result = await signIn("credentials", { email, password, redirect: false, }); if (result?.error) { setError("注册成功但自动登录失败,请手动登录"); router.push("/login"); } else { router.push(`/verify-email?email=${encodeURIComponent(email)}`); } } catch (err: unknown) { const message = err instanceof Error ? err.message : "注册失败"; setError(message); } finally { setLoading(false); } }; return ( 注册 创建GEO平台账号
{error && (

{error}

)}
setName(e.target.value)} required />
setEmail(e.target.value)} required />
setPassword(e.target.value)} required />
setConfirmPassword(e.target.value)} required />

已有账号?{" "} 立即登录

); }