@digitalsee-ai/rcs 2.0.4-beta5 → 2.0.4-beta6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { WorkflowCanvasProps } from '../constants';
2
2
  import { SaveStatus } from '../../enums/workflow';
3
3
  import { useEdgesInteraction } from '../../hooks/use-edges-interaction';
4
4
  import { useFlowDataOperation } from '../../hooks/use-flow-data-operation';
5
- import { useNodesInteraction } from '../../hooks/use-nodes-interaction';
5
+ import { useNodeHoverHandlers } from '../../hooks/use-nodes-interaction';
6
6
  import { usePanel } from '../../hooks/usePanel';
7
7
  import { useWorkflow } from '../../hooks/useWorkflow';
8
8
  import { useAppDispatch } from '../../store';
@@ -63,8 +63,8 @@ export interface WorkflowCanvasStateResult {
63
63
  handleTidy: () => void;
64
64
  onEdgeMouseEnter: ReturnType<typeof useEdgesInteraction>['onEdgeMouseEnter'];
65
65
  onEdgeMouseLeave: ReturnType<typeof useEdgesInteraction>['onEdgeMouseLeave'];
66
- onNodeMouseEnter: ReturnType<typeof useNodesInteraction>['onNodeMouseEnter'];
67
- onNodeMouseLeave: ReturnType<typeof useNodesInteraction>['onNodeMouseLeave'];
66
+ onNodeMouseEnter: ReturnType<typeof useNodeHoverHandlers>['onNodeMouseEnter'];
67
+ onNodeMouseLeave: ReturnType<typeof useNodeHoverHandlers>['onNodeMouseLeave'];
68
68
  onNodeContextMenu: (event: React.MouseEvent, node: Node) => void;
69
69
  onPaneContextMenu: (event: React.MouseEvent) => void;
70
70
  updateSaveStatus: (status: SaveStatus, error?: Error) => void;
@@ -1,3 +1,9 @@
1
1
  import { CanvasEngineConfig } from '../types/engine';
2
+ /**
3
+ * 判断当前是否处于工作流画布内(画布入口同时挂载 redux、CanvasConfig、ReactFlow 三个 Provider)。
4
+ *
5
+ * 仅用于区分「画布内组件」与「独立使用的表单组件」;业务组件取配置请用 useCanvasConfig。
6
+ */
7
+ export declare const useHasCanvasConfig: () => boolean;
2
8
  export declare const useCanvasConfig: () => CanvasEngineConfig;
3
9
  export declare const CanvasConfigProvider: import('react').Provider<CanvasEngineConfig>;
@@ -1,8 +1,21 @@
1
1
  import { NodeType } from '../types/Node';
2
- import { NodeMouseHandler, OnNodesChange } from '@xyflow/react';
3
- export declare const useNodesInteraction: () => {
2
+ import { Node, NodeMouseHandler } from '@xyflow/react';
3
+ /** 受控画布 setNodes 的函数式签名(hover 只用函数式更新,保证不读到滞后快照)。 */
4
+ type SetNodesFn = (updater: (nodes: Node[]) => Node[]) => void;
5
+ type NodeHoverHandlersOptions = {
6
+ /**
7
+ * 受控画布的 React state 写入器(useNodesState 的 setNodes)。
8
+ * hover 等改动必须写受控 state:直写 RF store 会被 StoreUpdater 在下一次
9
+ * 同步时覆盖,且与 store 快照互写会放大选中态的代际差(双选中 bug 根因之一)。
10
+ */
11
+ setNodes: SetNodesFn;
12
+ };
13
+ /** 节点 hover 高亮:写受控 React state,不直写 RF store。 */
14
+ export declare const useNodeHoverHandlers: ({ setNodes }: NodeHoverHandlersOptions) => {
4
15
  onNodeMouseEnter: NodeMouseHandler;
5
16
  onNodeMouseLeave: NodeMouseHandler;
6
- handleNodesChange: OnNodesChange;
17
+ };
18
+ export declare const useNodesInteraction: () => {
7
19
  handleNodesDelete: (nodeIds: string[], nodeType: NodeType) => void;
8
20
  };
21
+ export {};
@@ -252,6 +252,8 @@ export interface CanvasAPI {
252
252
  getNode(id: string): NodeConfig | null;
253
253
  selectNode(id: string): void;
254
254
  clearSelection(): void;
255
+ /** 清除单个节点的选中/悬停高亮(写受控 state,避免直写 RF store 被 StoreUpdater 覆盖)。 */
256
+ clearNodeHighlight(id: string): void;
255
257
  moveNode(id: string, pos: {
256
258
  x: number;
257
259
  y: number;