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