From 915bc7297464d2009727e36f362749f734ee13a8 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 3 Aug 2020 17:12:04 +0200 Subject: [PATCH] fix(onLoad): only call once closes #393 --- src/container/GraphView/index.tsx | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/container/GraphView/index.tsx b/src/container/GraphView/index.tsx index 0f1053e5..2af74166 100644 --- a/src/container/GraphView/index.tsx +++ b/src/container/GraphView/index.tsx @@ -107,6 +107,7 @@ const GraphView = ({ paneMoveable, onPaneClick, }: GraphViewProps) => { + const isInitialised = useRef(false); const zoomPane = useRef(null); const rendererNode = useRef(null); const d3Initialised = useStoreState((state) => state.d3Initialised); @@ -147,19 +148,19 @@ const GraphView = ({ }); useEffect(() => { - if (d3Initialised && onLoad) { - onLoad({ - fitView: (params = { padding: 0.1 }) => fitView(params), - zoomIn: () => zoom(0.2), - zoomOut: () => zoom(-0.2), - project, - getElements, - setTransform: (transform: FlowTransform) => - setInitTransform({ x: transform.x, y: transform.y, k: transform.zoom }), - }); - } + if (!isInitialised.current && d3Initialised) { + if (onLoad) { + onLoad({ + fitView: (params = { padding: 0.1 }) => fitView(params), + zoomIn: () => zoom(0.2), + zoomOut: () => zoom(-0.2), + project, + getElements, + setTransform: (transform: FlowTransform) => + setInitTransform({ x: transform.x, y: transform.y, k: transform.zoom }), + }); + } - if (d3Initialised) { const initialTransform = { x: defaultPosition[0], y: defaultPosition[1], @@ -169,6 +170,8 @@ const GraphView = ({ if (initialTransform.x !== 0 || initialTransform.y !== 0 || initialTransform.k !== 1) { setInitTransform(initialTransform); } + + isInitialised.current = true; } }, [d3Initialised, onLoad]);