"use client" import { useState } from "react" import { X, Phone, User, Gift } from "lucide-react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { useStore } from "@/lib/store" interface AuthModalProps { isOpen: boolean onClose: () => void defaultTab?: "login" | "register" } export function AuthModal({ isOpen, onClose, defaultTab = "login" }: AuthModalProps) { const [tab, setTab] = useState<"login" | "register">(defaultTab) const [phone, setPhone] = useState("") const [code, setCode] = useState("") const [nickname, setNickname] = useState("") const [referralCode, setReferralCode] = useState("") const [error, setError] = useState("") const [codeSent, setCodeSent] = useState(false) const { login, register } = useStore() const handleSendCode = () => { if (phone.length !== 11) { setError("请输入正确的手机号") return } // Simulate sending verification code setCodeSent(true) setError("") alert("验证码已发送,测试验证码: 123456") } const handleLogin = async () => { setError("") const success = await login(phone, code) if (success) { onClose() } else { setError("验证码错误或用户不存在,请先注册") } } const handleRegister = async () => { setError("") if (!nickname.trim()) { setError("请输入昵称") return } const success = await register(phone, nickname, referralCode || undefined) if (success) { onClose() } else { setError("该手机号已注册") } } if (!isOpen) return null return (
{/* Backdrop */}
{/* Modal */}
{/* Close button */} {/* Tabs */}
{/* Content */}
{tab === "login" ? (
setPhone(e.target.value)} placeholder="请输入手机号" className="pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" maxLength={11} />
setCode(e.target.value)} placeholder="请输入验证码" className="bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" maxLength={6} />
{error &&

{error}

}
) : (
setPhone(e.target.value)} placeholder="请输入手机号" className="pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" maxLength={11} />
setNickname(e.target.value)} placeholder="请输入昵称" className="pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" />
setCode(e.target.value)} placeholder="请输入验证码" className="bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" maxLength={6} />
setReferralCode(e.target.value)} placeholder="填写邀请码可获得优惠" className="pl-10 bg-[#0a1628] border-gray-700 text-white placeholder:text-gray-500" />
{error &&

{error}

}
)}
) }