import { useEffect, useState } from "react"; import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Textarea, } from "@arronqzy/ui"; import { useI18n } from "@arronqzy/i18n/react"; import type { BlueprintMetaDraft } from "../library/types"; export type BlueprintMetaDialogProps = { open: boolean; mode: "export" | "save"; initialMeta: BlueprintMetaDraft; onOpenChange: (open: boolean) => void; onConfirm: (meta: BlueprintMetaDraft) => void; }; export function BlueprintMetaDialog({ open, mode, initialMeta, onOpenChange, onConfirm, }: BlueprintMetaDialogProps) { const { t } = useI18n(); const [name, setName] = useState(initialMeta.name); const [remark, setRemark] = useState(initialMeta.remark); useEffect(() => { if (!open) return; setName(initialMeta.name); setRemark(initialMeta.remark); }, [initialMeta.name, initialMeta.remark, open]); const title = mode === "export" ? t("blueprint.dialog.exportTitle") : t("blueprint.dialog.saveTitle"); const description = mode === "export" ? t("blueprint.dialog.exportDescription") : t("blueprint.dialog.saveDescription"); const confirmLabel = mode === "export" ? t("blueprint.dialog.export") : t("blueprint.dialog.save"); const handleConfirm = () => { onConfirm({ name: name.trim() || t("blueprint.dialog.unnamedBlueprint"), remark: remark.trim(), }); onOpenChange(false); }; return ( {title} {description}
setName(e.target.value)} placeholder={t("blueprint.dialog.namePlaceholder")} autoFocus />