// ———— Login / Register ———— function LoginPage({ onLogin }) { const [tab, setTab] = useState("login"); const [email, setEmail] = useState(""); const [pwd, setPwd] = useState(""); const [pwd2, setPwd2] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const submit = async (e) => { e.preventDefault(); setError(""); if (tab === "register" && pwd !== pwd2) { setError("两次密码不一致"); return; } setLoading(true); try { if (tab === "login") { await window.API.login(email, pwd); } else { await window.API.register(email, pwd); } onLogin(); } catch (err) { setError(err.message || "操作失败"); } finally { setLoading(false); } }; return (