import { App as AntApp, DatePicker, Form, Input, Modal } from "antd"; import dayjs from "dayjs"; import { useEffect } from "react"; import type { Material } from "../types"; interface AddMaterialModalProps { onAdd: (material: Material) => void; onOpenChange: (open: boolean) => void; open: boolean; } interface FormValues { associatedDate: dayjs.Dayjs; description: string; } export function AddMaterialModal({ onAdd, onOpenChange, open }: AddMaterialModalProps) { const { message } = AntApp.useApp(); const [form] = Form.useForm(); useEffect(() => { if (!open) return; form.resetFields(); }, [form, open]); const handleFinish = (values: FormValues) => { const material: Material = { associatedDate: values.associatedDate.format("YYYY-MM-DD"), createdAt: new Date().toISOString(), description: values.description, id: crypto.randomUUID(), }; onAdd(material); message.success("素材已添加"); onOpenChange(false); }; return ( onOpenChange(false)} onOk={() => void form.submit()} open={open} title="新增素材" >
void handleFinish(values)} >
); }