import { useRef, useState } from "react"; import { Button, Form, FormItem, Input, Modal, Space, type FormRules, type FormSubmitEvent, } from "react-kui"; const rules: FormRules = { name: [{ required: true, message: "请输入姓名" }] }; export default function App() { const [saved, setSaved] = useState({ name: "示例用户" }); const [model, setModel] = useState>({ name: "" }); const [open, setOpen] = useState(false); const [session, setSession] = useState(0); const [saving, setSaving] = useState(false); const busy = useRef(false); const [error, setError] = useState(""); function edit(create: boolean) { setModel({ name: create ? "" : saved.name }); setSession((value) => value + 1); setError(""); setOpen(true); } async function save({ valid }: FormSubmitEvent) { if (!valid || busy.current) return; busy.current = true; setSaving(true); setError(""); try { const payload = { name: String(model.name ?? "") }; // Replace this local mock with your create/update API request. await new Promise((resolve) => setTimeout(resolve, 200)); setSaved(payload); setOpen(false); } catch { setError("保存失败,请重试"); } finally { busy.current = false; setSaving(false); } } return ( <> {saved.name}
{error &&

{error}

}
); }