diff --git a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx index c99c2214d..21e4b75a6 100644 --- a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx +++ b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx @@ -27,22 +27,31 @@ export default function BuildTrigger({ const { setErrorData } = useContext(alertContext); async function handleBuild(flow: FlowType) { - const errors = validateNodes(reactFlowInstance); - if (errors.length > 0) { - setErrorData({ - title: "Oops! Looks like you missed something", - list: errors, - }); - return; - } - const minimumLoadingTime = 200; // in milliseconds - const startTime = Date.now(); - setIsBuilding(true); - try { - const allNodesValid = await streamNodeData(flow); - await enforceMinimumLoadingTime(startTime, minimumLoadingTime); - setIsBuilt(allNodesValid); + if (isBuilding) { + return; + } + const errors = validateNodes(reactFlowInstance); + if (errors.length > 0) { + setErrorData({ + title: "Oops! Looks like you missed something", + list: errors, + }); + return; + } + const minimumLoadingTime = 200; // in milliseconds + const startTime = Date.now(); + setIsBuilding(true); + + try { + const allNodesValid = await streamNodeData(flow); + await enforceMinimumLoadingTime(startTime, minimumLoadingTime); + setIsBuilt(allNodesValid); + } catch (error) { + console.error("Error:", error); + } finally { + setIsBuilding(false); + } } catch (error) { console.error("Error:", error); } finally { @@ -127,7 +136,7 @@ export default function BuildTrigger({