Files
ai-video-fullstack/frontend/src/components/workflow/context.ts
T

24 lines
716 B
TypeScript
Raw Normal View History

"use client";
/**
* 画布内共享上下文。GenericNode / ConditionEdge 由 ReactFlow 渲染,拿不到外层
* 回调,统一通过这些 context 取节点规格与编辑/删除动作。
*/
import { createContext } from "react";
import type { NodeSpecMap } from "./specs";
/** 节点类型 → 运行期规格(来自 /api/node-types) */
export const NodeSpecsContext = createContext<NodeSpecMap>({});
export type ElementActions = {
edit: (id: string) => void;
remove: (id: string) => void;
};
const noop: ElementActions = { edit: () => {}, remove: () => {} };
export const NodeActionContext = createContext<ElementActions>(noop);
export const EdgeActionContext = createContext<ElementActions>(noop);