import { App, Button, Modal } from "antd"; import { useState } from "react"; import { useAssetStore } from "@/stores/use-asset-store"; import { useCanvasUiStore } from "@/stores/canvas/use-canvas-ui-store"; import { deleteCanvasProjectsWithRemoteSync } from "@/services/user-data-sync"; export function CanvasDeleteProjectsDialog() { const { message } = App.useApp(); const ids = useCanvasUiStore((state) => state.deleteProjectIds); const setDeleteIds = useCanvasUiStore((state) => state.setDeleteProjectIds); const removeSelectedIds = useCanvasUiStore((state) => state.removeSelectedProjectIds); const cleanupImages = useAssetStore((state) => state.cleanupImages); const [deleting, setDeleting] = useState(false); const confirm = async () => { setDeleting(true); try { await deleteCanvasProjectsWithRemoteSync(ids); void cleanupImages(); removeSelectedIds(ids); setDeleteIds([]); } catch (error) { message.error(error instanceof Error ? `删除画布失败:${error.message}` : "删除画布失败,请稍后重试"); } finally { setDeleting(false); } }; return ( 0} centered onCancel={() => setDeleteIds([])} footer={ <> } >

将删除 {ids.length} 个画布,里面的节点和连线也会一起移除。

); }