feat(canvas): 多图批次 - 子图操作条补齐(下载/副本/设主图/失败重试删除)
- 展开批次子图悬浮操作条:成功子项下载/创建副本/设为主图,失败子项重试/删除 - 批次主图位常驻下载按钮 - 通过 CanvasNodeActionContext 注入画布级动作(download/duplicate/delete),不改 world-layers 数据模型
This commit is contained in:
18
web/src/components/canvas/canvas-node-action-context.ts
Normal file
18
web/src/components/canvas/canvas-node-action-context.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { createContext, useContext } from "react";
|
||||
|
||||
import type { CanvasNodeData } from "@/types/canvas";
|
||||
|
||||
// 批次子图操作条(下载/创建副本/删除)与主图位下载需要调用画布级动作,
|
||||
// 但画布节点经 CanvasProjectWorldLayers 渲染、不便逐个透传 handler,
|
||||
// 通过 Context 注入,避免改动 world-layers。无 Provider 时静默降级为 no-op。
|
||||
export type CanvasNodeActionContextValue = {
|
||||
download?: (node: CanvasNodeData) => void;
|
||||
duplicate?: (node: CanvasNodeData) => void;
|
||||
deleteNode?: (node: CanvasNodeData) => void;
|
||||
};
|
||||
|
||||
export const CanvasNodeActionContext = createContext<CanvasNodeActionContextValue>({});
|
||||
|
||||
export function useCanvasNodeActions() {
|
||||
return useContext(CanvasNodeActionContext);
|
||||
}
|
||||
Reference in New Issue
Block a user