"use client"; import { useState, useRef, useEffect } from "react"; import styles from "../vip.module.css"; type LoginFormProps = { onVerify: (userId: string) => Promise; onSuccess: () => void; autoFocus?: boolean; }; export function LoginForm({ onVerify, onSuccess, autoFocus }: LoginFormProps) { const [userId, setUserId] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const inputRef = useRef(null); useEffect(() => { if (autoFocus) inputRef.current?.focus(); }, [autoFocus]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const trimmed = userId.trim(); if (!trimmed) { setError("请输入您的账号"); return; } setError(null); setLoading(true); try { const ok = await onVerify(trimmed); if (ok) { onSuccess(); } else { setError("未找到该账号的会员记录,请确认账号正确"); } } catch { setError("验证失败,请稍后重试"); } finally { setLoading(false); } }; return (
setUserId(e.target.value)} placeholder="例如:user1234567890" disabled={loading} style={{ width: "100%", padding: "0.75rem 1rem", fontSize: "1rem", border: "1px solid var(--border)", borderRadius: "8px", background: "var(--background)", color: "var(--foreground)", marginBottom: "0.75rem", }} /> {error && (

{error}

)}
); }