fix(onLoad): only call once closes #393

This commit is contained in:
moklick
2020-08-03 17:12:04 +02:00
parent 56dc40b7cc
commit 915bc72974
+5 -2
View File
@@ -107,6 +107,7 @@ const GraphView = ({
paneMoveable, paneMoveable,
onPaneClick, onPaneClick,
}: GraphViewProps) => { }: GraphViewProps) => {
const isInitialised = useRef<boolean>(false);
const zoomPane = useRef<HTMLDivElement>(null); const zoomPane = useRef<HTMLDivElement>(null);
const rendererNode = useRef<HTMLDivElement>(null); const rendererNode = useRef<HTMLDivElement>(null);
const d3Initialised = useStoreState((state) => state.d3Initialised); const d3Initialised = useStoreState((state) => state.d3Initialised);
@@ -147,7 +148,8 @@ const GraphView = ({
}); });
useEffect(() => { useEffect(() => {
if (d3Initialised && onLoad) { if (!isInitialised.current && d3Initialised) {
if (onLoad) {
onLoad({ onLoad({
fitView: (params = { padding: 0.1 }) => fitView(params), fitView: (params = { padding: 0.1 }) => fitView(params),
zoomIn: () => zoom(0.2), zoomIn: () => zoom(0.2),
@@ -159,7 +161,6 @@ const GraphView = ({
}); });
} }
if (d3Initialised) {
const initialTransform = { const initialTransform = {
x: defaultPosition[0], x: defaultPosition[0],
y: defaultPosition[1], y: defaultPosition[1],
@@ -169,6 +170,8 @@ const GraphView = ({
if (initialTransform.x !== 0 || initialTransform.y !== 0 || initialTransform.k !== 1) { if (initialTransform.x !== 0 || initialTransform.y !== 0 || initialTransform.k !== 1) {
setInitTransform(initialTransform); setInitTransform(initialTransform);
} }
isInitialised.current = true;
} }
}, [d3Initialised, onLoad]); }, [d3Initialised, onLoad]);