"use client" import { Button } from "@/components/ui/button" import { Checkbox } from "@/components/ui/checkbox" import { IconInput } from "@/components/ui/icon-input" import { Label } from "@/components/ui/label" import { getCurrentUserForLogin } from "@/lib/api" import { useAuthStore } from "@/store/auth" import { standardSchemaResolver } from "@hookform/resolvers/standard-schema" import { Eye, EyeOff, Lock, Phone } from "lucide-react" import Link from "next/link" import { useRouter } from "next/navigation" import { useState } from "react" import { useForm } from "react-hook-form" import { z } from "zod" const loginSchema = z.object({ phone: z.string().min(11, "请输入正确的手机号"), password: z.string().min(6, "密码至少6位"), }) export default function LoginPage() { const router = useRouter() const { login } = useAuthStore() const [showPassword, setShowPassword] = useState(false) const { register, handleSubmit, formState: { errors, isSubmitting }, } = useForm({ resolver: standardSchemaResolver(loginSchema), }) const onSubmit = async (_data: z.infer) => { await new Promise((r) => setTimeout(r, 500)) login(getCurrentUserForLogin(), ["consumer", "player", "owner"]) router.push("/") } return ( <>

欢迎回来

登录你的聚玩账号,继续游戏之旅

} placeholder="输入手机号" {...register("phone")} /> {errors.phone &&

{errors.phone.message}

}
忘记密码?
} type={showPassword ? "text" : "password"} placeholder="输入密码" rightElement={ } {...register("password")} /> {errors.password &&

{errors.password.message}

}

还没有账号?{" "} 立即注册

) }