- Create separated folders for sections - Add components - Add utils and clean old ones - Add constants - Rename search variables folder and components Next steps: - clean hooks - clean states
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { workflowDiagramTriggerNodeSelectionState } from '@/workflow/states/workflowDiagramTriggerNodeSelectionState';
|
|
import {
|
|
WorkflowDiagramEdge,
|
|
WorkflowDiagramNode,
|
|
} from '@/workflow/workflow-diagram/types/WorkflowDiagram';
|
|
import { useReactFlow } from '@xyflow/react';
|
|
import { useEffect } from 'react';
|
|
import { useRecoilState } from 'recoil';
|
|
import { isDefined } from 'twenty-ui';
|
|
|
|
export const useTriggerNodeSelection = () => {
|
|
const reactflow = useReactFlow<WorkflowDiagramNode, WorkflowDiagramEdge>();
|
|
|
|
const [
|
|
workflowDiagramTriggerNodeSelection,
|
|
setWorkflowDiagramTriggerNodeSelection,
|
|
] = useRecoilState(workflowDiagramTriggerNodeSelectionState);
|
|
|
|
useEffect(() => {
|
|
if (!isDefined(workflowDiagramTriggerNodeSelection)) {
|
|
return;
|
|
}
|
|
|
|
reactflow.setNodes((nodes) =>
|
|
nodes.map((node) => ({
|
|
...node,
|
|
selected: workflowDiagramTriggerNodeSelection === node.id,
|
|
})),
|
|
);
|
|
|
|
setWorkflowDiagramTriggerNodeSelection(undefined);
|
|
}, [
|
|
reactflow,
|
|
setWorkflowDiagramTriggerNodeSelection,
|
|
workflowDiagramTriggerNodeSelection,
|
|
]);
|
|
};
|