import { HeartHandshake, Loader2, MoonStar, Sparkles, WandSparkles } from "lucide-react"; import { type FormEvent, useState } from "react"; import type { SessionState } from "../stores/session"; import { cx } from "../utils/classes"; interface AuthViewProps { session: SessionState; } export function AuthView({ session }: AuthViewProps) { const isRegister = session.auth.mode === "register"; const [draft, setDraft] = useState({ account: "", displayName: "", email: "", password: "", phone: "", qq: "" }); function updateDraft(key: keyof typeof draft, value: string) { setDraft((current) => ({ ...current, [key]: value })); } async function submit(event: FormEvent) { event.preventDefault(); if (isRegister) { await session.register({ displayName: draft.displayName.trim() || draft.account.trim() || "待审核玩家", email: draft.email.trim(), password: draft.password, phone: draft.phone.trim(), qq: draft.qq.trim() }); return; } await session.login({ account: draft.account.trim(), password: draft.password }); } return (

Mecha Ops Console

{isRegister ? "申请进入服务器工作台" : "登录机甲运维工作台"}

{isRegister ? "新账号默认进入待审核或服务器范围,不会获得平台管理员权限。" : "登录后会按你的角色进入默认工作区:平台管理员看概览,服务器用户看服务器列表。"}

{isRegister ? ( <> ) : ( )} {session.auth.error && (
操作失败 {session.auth.error}
)} {session.auth.success && (
已记录 {session.auth.success}
)} {session.authUnavailable && session.localFallbackAvailable && (
本地回退可用 当前身份 API 不可用,可以进入服务器范围的本地演示工作台进行 UI 验收。
)} {session.authUnavailable && session.localFallbackAvailable && ( )}
); }