@ant-design/pro-flow
Version:
A React based Flow components
47 lines (46 loc) • 1.3 kB
TypeScript
import { Node, XYPosition } from 'reactflow';
import { FlattenNodes, MetaData, NodeState } from '../../types';
interface AddNodeDispatch {
type: 'addNode';
node: Node;
}
interface BatchAddNodesDispatch {
type: 'addNodes';
nodes: Record<string, Node>;
}
interface DeleteNodeDispatch {
type: 'deleteNode';
id: string;
}
interface UpdateNodePositionDispatch {
type: 'updateNodePosition';
id: string;
position?: XYPosition;
}
interface UpdateNodeMetaDispatch {
type: 'updateNodeMeta';
id: string;
key: keyof MetaData;
value: MetaData[keyof MetaData];
}
interface UpdateNodeStateDispatch {
type: 'updateNodeState';
id: string;
key: keyof NodeState;
value: any;
}
interface UpdateNodeContentDispatch {
type: 'updateNodeContent';
id: string;
key: string;
value: any;
}
interface UpdateNodeDataDispatch {
type: 'updateNodeData';
id: string;
newData: any;
deepReplace?: boolean;
}
export type NodeDispatch = AddNodeDispatch | BatchAddNodesDispatch | DeleteNodeDispatch | UpdateNodePositionDispatch | UpdateNodeMetaDispatch | UpdateNodeStateDispatch | UpdateNodeContentDispatch | UpdateNodeDataDispatch;
export declare const nodeReducer: (state: FlattenNodes, action: NodeDispatch) => FlattenNodes;
export {};