From 12d1cdf8f1c4dcd8c258134a296dfedbd1d9198e Mon Sep 17 00:00:00 2001 From: Guilhem Date: Wed, 4 Mar 2026 12:55:28 +0000 Subject: [PATCH] fix(frontend): guard data.module.value access in ModuleNode When rapidly clicking expand/collapse on a subflow, the graph rebuilds and data.module can be transiently undefined. Add optional chaining to prevent "Cannot read properties of undefined (reading 'value')" errors. Co-Authored-By: Claude Opus 4.6 --- .../graph/renderers/nodes/ModuleNode.svelte | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte index df9631db0e..ba9c0659e1 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte @@ -93,7 +93,7 @@ moduleAction={data.moduleAction} {menuItems} annotation={flowJobs && - (data.module.value.type === 'forloopflow' || data.module.value.type === 'whileloopflow') + (data.module?.value?.type === 'forloopflow' || data.module?.value?.type === 'whileloopflow') ? 'Iteration: ' + ((state?.selectedForloopIndex ?? 0) >= 0 ? (state?.selectedForloopIndex ?? 0) + 1 @@ -130,15 +130,18 @@ onEditInput={data.eventHandlers.editInput} flowJob={data.flowJob} isOwner={data.isOwner} - maximizeSubflow={data.module.value.type == 'flow' && 'path' in data.module.value + maximizeSubflow={data.module?.value?.type == 'flow' && 'path' in data.module.value ? () => { - data.eventHandlers.expandSubflow(data.id, data.module.value['path']) + const path = data.module?.value && 'path' in data.module.value ? data.module.value['path'] as string : undefined + if (path) { + data.eventHandlers.expandSubflow(data.id, path) + } } : undefined} />
- {#if (data.module.value.type === 'branchall' || data.module.value.type === 'branchone') && data.insertable} + {#if (data.module?.value?.type === 'branchall' || data.module?.value?.type === 'branchone') && data.insertable}