From 8b9522d0eb64c879068a520cd1cef3ea4d958242 Mon Sep 17 00:00:00 2001 From: Emir Karabeg Date: Wed, 29 Jan 2025 20:30:16 -0800 Subject: [PATCH] Fixed refresh duplicating workflows bug --- app/w/[id]/workflow.tsx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/app/w/[id]/workflow.tsx b/app/w/[id]/workflow.tsx index 4646187add..7ba9872b2d 100644 --- a/app/w/[id]/workflow.tsx +++ b/app/w/[id]/workflow.tsx @@ -307,8 +307,23 @@ export default function Workflow() { const params = useParams() const router = useRouter() const { workflows, setActiveWorkflow, addWorkflow } = useWorkflowRegistry() + const [isInitialized, setIsInitialized] = useState(false) useEffect(() => { + // First, initialize the registry and wait for it + if (typeof window !== 'undefined') { + const savedRegistry = localStorage.getItem('workflow-registry') + if (savedRegistry) { + useWorkflowRegistry.setState({ workflows: JSON.parse(savedRegistry) }) + } + setIsInitialized(true) + } + }, []) + + useEffect(() => { + // Only proceed if we've initialized the registry + if (!isInitialized) return + // Helper function to create a new workflow const createInitialWorkflow = () => { const id = crypto.randomUUID() @@ -346,7 +361,18 @@ export default function Workflow() { } validateAndNavigate() - }, [params.id, workflows, setActiveWorkflow, addWorkflow, router]) + }, [ + params.id, + workflows, + setActiveWorkflow, + addWorkflow, + router, + isInitialized, + ]) + + if (!isInitialized) { + return null // or a loading spinner + } return (