"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { useAuthStore } from "@/store/auth"; import { BookOpen, Eye, EyeOff, Loader2, CheckCircle } from "lucide-react"; import { FlickeringGrid } from "@/components/magicui/flickering-grid"; import { ThemeToggle } from "@/components/ui/theme-toggle"; const registerSchema = z.object({ username: z.string().min(3, "用户名至少3个字符").max(20, "用户名最多20个字符"), email: z.string().email("请输入有效的邮箱地址"), password: z.string().min(6, "密码至少6个字符"), confirmPassword: z.string(), full_name: z.string().optional(), }).refine((data) => data.password === data.confirmPassword, { message: "密码不匹配", path: ["confirmPassword"], }); type RegisterForm = z.infer; export default function RegisterPage() { const [showPassword, setShowPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); const { register: registerUser, error, clearError } = useAuthStore(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(registerSchema), }); const onSubmit = async (data: RegisterForm) => { setIsLoading(true); clearError(); const success = await registerUser({ username: data.username, email: data.email, password: data.password, full_name: data.full_name, }); if (success) { router.push("/chat"); } setIsLoading(false); }; return (
{/* 背景动画 */} {/* 主题切换按钮 */}
{/* Logo和标题 */}
国土空间规划课程智能体

创建您的账户

{/* 注册表单 */} 注册 填写以下信息创建您的账户
{/* 错误提示 */} {error && ( {error} )} {/* 用户名输入 */}
{errors.username && (

{errors.username.message}

)}
{/* 邮箱输入 */}
{errors.email && (

{errors.email.message}

)}
{/* 姓名输入 */}
{errors.full_name && (

{errors.full_name.message}

)}
{/* 密码输入 */}
{errors.password && (

{errors.password.message}

)}
{/* 确认密码输入 */}
{errors.confirmPassword && (

{errors.confirmPassword.message}

)}
{/* 注册按钮 */}
{/* 登录链接 */}

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

{/* 注册提示 */}

注册即表示您同意我们的服务条款和隐私政策

); }