From 5635a86f047d9624f93a1991f6f0d11a758b6e2e Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Mon, 22 May 2023 08:21:52 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(tabsContext.tsx):=20add=20nu?= =?UTF-8?q?ll=20check=20for=20flow.data=20to=20prevent=20errors=20The=20co?= =?UTF-8?q?de=20now=20checks=20if=20flow.data=20is=20null=20before=20itera?= =?UTF-8?q?ting=20over=20its=20nodes.=20This=20prevents=20errors=20that=20?= =?UTF-8?q?would=20occur=20when=20flow.data=20is=20null.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/contexts/tabsContext.tsx | 53 +++++++++++++---------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 7cd3925ec..15fe9eaf6 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -64,29 +64,36 @@ export function TabsProvider({ children }: { children: ReactNode }) { if (cookie && Object.keys(templates).length > 0) { let cookieObject: LangFlowState = JSON.parse(cookie); cookieObject.flows.forEach((flow) => { - flow.data.nodes.forEach((node) => { - if (Object.keys(templates[node.data.type]["template"]).length > 0) { - node.data.node.base_classes = - templates[node.data.type]["base_classes"]; - flow.data.edges.forEach((edge) => { - if (edge.source === node.id) { - edge.sourceHandle = edge.sourceHandle - .split("|") - .slice(0, 2) - .concat(templates[node.data.type]["base_classes"]) - .join("|"); - } - }); - node.data.node.description = - templates[node.data.type]["description"]; - node.data.node.template = updateTemplate( - templates[node.data.type][ - "template" - ] as unknown as APITemplateType, - node.data.node.template as APITemplateType - ); - } - }); + // check if flow.data is null + if (flow.data) { + flow.data.nodes.forEach((node) => { + // check if node.data.type is in templates + if ( + Object.keys(templates).includes(node.data.type) && + Object.keys(templates[node.data.type]["template"]).length > 0 + ) { + node.data.node.base_classes = + templates[node.data.type]["base_classes"]; + flow.data.edges.forEach((edge) => { + if (edge.source === node.id) { + edge.sourceHandle = edge.sourceHandle + .split("|") + .slice(0, 2) + .concat(templates[node.data.type]["base_classes"]) + .join("|"); + } + }); + node.data.node.description = + templates[node.data.type]["description"]; + node.data.node.template = updateTemplate( + templates[node.data.type][ + "template" + ] as unknown as APITemplateType, + node.data.node.template as APITemplateType + ); + } + }); + } }); setTabIndex(cookieObject.tabIndex); setFlows(cookieObject.flows);