"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { useToast, safeFetch } from "@/components/Toast"; import { ToastProvider } from "@/components/Toast"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Button } from "@/components/ui/button"; export default function LoginPage() { return ( ); } function LoginForm() { const [password, setPassword] = useState(""); const [loading, setLoading] = useState(false); const { toast } = useToast(); const router = useRouter(); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setLoading(true); try { await safeFetch("/api/auth", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ password }), }, toast); router.push("/admin"); } catch { /* safeFetch 已弹 toast */ } setLoading(false); } return (

后台管理

asui.xyz

setPassword(e.target.value)} autoFocus />
); }