diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 6190a6e56..88f5005fe 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -52,7 +52,7 @@ const TabsContextInitialValue: TabsContextType = { isBuilt: false, setIsBuilt: (state: boolean) => {}, hardReset: () => {}, - saveFlow: async (flow: FlowType) => {}, + saveFlow: async (flow: FlowType, silent?: boolean) => {}, lastCopiedSelection: null, setLastCopiedSelection: (selection: any) => {}, tabsState: {}, @@ -588,13 +588,15 @@ export function TabsProvider({ children }: { children: ReactNode }) { }); } - async function saveFlow(newFlow: FlowType) { + async function saveFlow(newFlow: FlowType, silent?: boolean) { try { // updates flow in db const updatedFlow = await updateFlowInDatabase(newFlow); if (updatedFlow) { // updates flow in state - setSuccessData({ title: "Changes saved successfully" }); + if (!silent) { + setSuccessData({ title: "Changes saved successfully" }); + } setFlows((prevState) => { const newFlows = [...prevState]; const index = newFlows.findIndex((flow) => flow.id === newFlow.id); diff --git a/src/frontend/src/modals/baseModal/index.tsx b/src/frontend/src/modals/baseModal/index.tsx index dc2008e68..263f335fd 100644 --- a/src/frontend/src/modals/baseModal/index.tsx +++ b/src/frontend/src/modals/baseModal/index.tsx @@ -70,7 +70,7 @@ interface BaseModalProps { | "medium-h-full"; disable?: boolean; - onChangeOpenModal?: (open: boolean) => void; + onChangeOpenModal?: (open?: boolean) => void; } function BaseModal({ open, diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx index eae785fc7..beef5a201 100644 --- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx @@ -160,6 +160,27 @@ export default function Page({ setExtraNavigation({ title: "Components" }); }, [setExtraComponent, setExtraNavigation]); + const [seconds, setSeconds] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setSeconds((prevSeconds) => { + let updatedSeconds = prevSeconds + 1; + + if (updatedSeconds % 30 === 0) { + saveFlow(flow, true); + updatedSeconds = 0; + } + + return updatedSeconds; + }); + }, 1000); + + return () => { + clearInterval(interval); + }; + }, []); + const onEdgesChangeMod = useCallback( (change: EdgeChange[]) => { onEdgesChange(change); diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index e1e3bd5c4..f84d194ea 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -62,6 +62,9 @@ export default function NodeToolbarComponent({ setShowNode((prev) => !prev); updateNodeInternals(data.id); } + if(event.includes("disabled")){ + return; + } }; return ( @@ -153,8 +156,8 @@ export default function NodeToolbarComponent({ - -
+ +