From 1148894e48040cdf123f94ce18ca90c4693eb1df Mon Sep 17 00:00:00 2001 From: Jonathan Dobson Date: Tue, 12 Aug 2025 19:32:39 -0400 Subject: [PATCH] throttle instead of debounce (#3168) --- .../src/routes/workflows/editor/FlowRenderer.tsx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx b/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx index 86e3c9d4..ecb757a8 100644 --- a/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx @@ -715,14 +715,13 @@ function FlowRenderer({ workflowChangesStore.setHasChanges(true); } - // prevent cascading React updates - if (onNodesChangeTimeoutRef.current) { - clearTimeout(onNodesChangeTimeoutRef.current); - } - - onNodesChangeTimeoutRef.current = setTimeout(() => { + // throttle onNodesChange to prevent cascading React updates + if (onNodesChangeTimeoutRef.current === null) { onNodesChange(changes); - }, 0); // defer to next tick + onNodesChangeTimeoutRef.current = setTimeout(() => { + onNodesChangeTimeoutRef.current = null; + }, 33); // ~30fps throttle + } }} onEdgesChange={onEdgesChange} nodeTypes={nodeTypes}