diff --git a/src/containers/Views/GraphView/index.tsx b/src/containers/Views/GraphView/index.tsx
index 0f8fdb2c0cd..d8771d39b1b 100644
--- a/src/containers/Views/GraphView/index.tsx
+++ b/src/containers/Views/GraphView/index.tsx
@@ -1,6 +1,7 @@
import React from "react";
import dynamic from "next/dynamic";
import styled from "styled-components";
+import debounce from "lodash.debounce";
import { toast } from "react-hot-toast";
import { Space } from "react-zoomable-ui";
import { ElkRoot } from "reaflow/dist/layout/useLayout";
@@ -96,7 +97,6 @@ const GraphCanvas = ({ isWidget }: GraphProps) => {
const direction = useGraph(state => state.direction);
const nodes = useGraph(state => state.nodes);
const edges = useGraph(state => state.edges);
-
const [paneWidth, setPaneWidth] = React.useState(2000);
const [paneHeight, setPaneHeight] = React.useState(2000);
@@ -156,6 +156,7 @@ function getViewType(nodes: NodeData[]) {
export const Graph = ({ isWidget = false }: GraphProps) => {
const setViewPort = useGraph(state => state.setViewPort);
+ const viewPort = useGraph(state => state.viewPort);
const loading = useGraph(state => state.loading);
const isPremium = useUser(state => state.premium);
const viewType = useGraph(state => getViewType(state.nodes));
@@ -192,6 +193,9 @@ export const Graph = ({ isWidget = false }: GraphProps) => {
if (viewType === "premium" && !isWidget) {
if (!isPremium) return ;
}
+ const debouncedOnZoomChangeHandler = debounce(() => {
+ setViewPort(viewPort!);
+ }, 300);
return (
<>
@@ -205,6 +209,7 @@ export const Graph = ({ isWidget = false }: GraphProps) => {
{...bindLongPress()}
>
debouncedOnZoomChangeHandler()}
onCreate={setViewPort}
onContextMenu={e => e.preventDefault()}
treatTwoFingerTrackPadGesturesLikeTouch={gesturesEnabled}