feat(ui): make useZoomToNode not rely on reactflow ctx

This commit is contained in:
psychedelicious
2025-02-21 15:16:02 +10:00
committed by Kent Keirsey
parent 6cd794d860
commit e9e2bab4ee

View File

@@ -1,13 +1,17 @@
import { useReactFlow } from '@xyflow/react';
import { logger } from 'app/logging/logger';
import { $flow } from 'features/nodes/store/reactFlowInstance';
import { useCallback } from 'react';
const log = logger('workflows');
export const useZoomToNode = () => {
const flow = useReactFlow();
const zoomToNode = useCallback(
(nodeId: string) => {
flow.fitView({ duration: 300, maxZoom: 1.5, nodes: [{ id: nodeId }] });
},
[flow]
);
const zoomToNode = useCallback((nodeId: string) => {
const flow = $flow.get();
if (!flow) {
log.warn('No flow instance found, cannot zoom to node');
return;
}
flow.fitView({ duration: 300, maxZoom: 1.5, nodes: [{ id: nodeId }] });
}, []);
return zoomToNode;
};