Files
MiragenFlow/web/src/components/canvas/canvas-delete-projects-dialog.tsx
T

39 lines
1.4 KiB
TypeScript

import { Button, Modal } from "antd";
import { useAssetStore } from "@/stores/use-asset-store";
import { useCanvasStore } from "@/stores/canvas/use-canvas-store";
import { useCanvasUiStore } from "@/stores/canvas/use-canvas-ui-store";
export function CanvasDeleteProjectsDialog() {
const ids = useCanvasUiStore((state) => state.deleteProjectIds);
const setDeleteIds = useCanvasUiStore((state) => state.setDeleteProjectIds);
const removeSelectedIds = useCanvasUiStore((state) => state.removeSelectedProjectIds);
const deleteProjects = useCanvasStore((state) => state.deleteProjects);
const cleanupImages = useAssetStore((state) => state.cleanupImages);
const confirm = () => {
deleteProjects(ids);
cleanupImages();
removeSelectedIds(ids);
setDeleteIds([]);
};
return (
<Modal
title="删除画布?"
open={ids.length > 0}
centered
onCancel={() => setDeleteIds([])}
footer={
<>
<Button onClick={() => setDeleteIds([])}>取消</Button>
<Button danger type="primary" onClick={confirm}>
删除
</Button>
</>
}
>
<p className="text-sm text-stone-500">将删除 {ids.length} 个画布,里面的节点和连线也会一起移除。</p>
</Modal>
);
}