diff --git a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx index 2cd06f65c..eb242bebf 100644 --- a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx +++ b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx @@ -29,6 +29,7 @@ export const MenuBar = ({ const addFlow = useFlowsManagerStore((state) => state.addFlow); const currentFlow = useFlowsManagerStore((state) => state.currentFlow); const setErrorData = useAlertStore((state) => state.setErrorData); + const setSuccessData = useAlertStore((state) => state.setSuccessData); const undo = useFlowsManagerStore((state) => state.undo); const redo = useFlowsManagerStore((state) => state.redo); const saveLoading = useFlowsManagerStore((state) => state.saveLoading); @@ -38,11 +39,23 @@ export const MenuBar = ({ const navigate = useNavigate(); const isBuilding = useFlowStore((state) => state.isBuilding); - function handleAddFlow() { + function handleAddFlow(duplicate?: boolean) { try { - addFlow(true).then((id) => { - navigate("/flow/" + id); - }); + if(duplicate) { + if (!currentFlow) { + throw new Error("No flow to duplicate"); + } + addFlow(true, currentFlow).then((id) => { + setSuccessData({title:"Flow duplicated successfully"}); + navigate("/flow/" + id); + }); + } + else + { + addFlow(true).then((id) => { + navigate("/flow/" + id); + }); + } } catch (err) { setErrorData(err as { title: string; list?: Array }); } @@ -62,7 +75,7 @@ export const MenuBar = ({