"use client" import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import * as z from "zod" import { Button } from "@/components/ui/button" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { useToast } from "@/components/ui/use-toast" import { useRouter } from "next/navigation" import Link from "next/link" import { ThemeToggle } from "@/components/theme-toggle" const formSchema = z.object({ username: z.string().min(2, { message: "用户名至少需要2个字符", }), password: z.string().min(6, { message: "密码至少需要6个字符", }), email: z.string().email({ message: "请输入有效的电子邮件地址", }), phone: z.string().min(11, { message: "请输入有效的电话号码", }), }) export default function RegisterPage() { const { toast } = useToast() const router = useRouter() const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { username: "", password: "", email: "", phone: "", }, }) async function onSubmit(values: z.infer) { try { const response = await fetch("/api/reader/register", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(values), }) const result = await response.json() if (result.code === 0) { toast({ title: "注册成功", description: "您已成功注册,请登录", }) router.push("/login") } else { toast({ variant: "destructive", title: "注册失败", description: result.msg || "注册失败,请稍后再试", }) } } catch (error) { toast({ variant: "destructive", title: "注册失败", description: "服务器连接错误,请稍后再试", }) } } return (
图书管理系统

"读一本好书,就是和许多高尚的人谈话。"

笛卡尔

创建账户

输入您的信息注册新账户

( 用户名 )} /> ( 密码 )} /> ( 电子邮件 )} /> ( 电话号码 )} />
已有账户?{" "} 登录
) }