fix(onLoad): only call once closes #393
This commit is contained in:
@@ -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,19 +148,19 @@ const GraphView = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (d3Initialised && onLoad) {
|
if (!isInitialised.current && d3Initialised) {
|
||||||
onLoad({
|
if (onLoad) {
|
||||||
fitView: (params = { padding: 0.1 }) => fitView(params),
|
onLoad({
|
||||||
zoomIn: () => zoom(0.2),
|
fitView: (params = { padding: 0.1 }) => fitView(params),
|
||||||
zoomOut: () => zoom(-0.2),
|
zoomIn: () => zoom(0.2),
|
||||||
project,
|
zoomOut: () => zoom(-0.2),
|
||||||
getElements,
|
project,
|
||||||
setTransform: (transform: FlowTransform) =>
|
getElements,
|
||||||
setInitTransform({ x: transform.x, y: transform.y, k: transform.zoom }),
|
setTransform: (transform: FlowTransform) =>
|
||||||
});
|
setInitTransform({ x: transform.x, y: transform.y, k: transform.zoom }),
|
||||||
}
|
});
|
||||||
|
}
|
||||||
|
|
||||||
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]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user