Fixed saving

This commit is contained in:
Lucas Oliveira 2024-04-01 14:36:41 +02:00
commit 3d7b8f08ed
2 changed files with 34 additions and 36 deletions

View file

@ -193,29 +193,31 @@ export const MenuBar = ({
setOpen={setOpenSettings} setOpen={setOpenSettings}
></FlowSettingsModal> ></FlowSettingsModal>
</div> </div>
<ShadTooltip {(currentFlow.updated_at || saveLoading) && (
content={ <ShadTooltip
SAVED_HOVER + content={
new Date(currentFlow.updated_at ?? "").toLocaleString("en-US", { SAVED_HOVER +
hour: "numeric", new Date(currentFlow.updated_at ?? "").toLocaleString("en-US", {
minute: "numeric", hour: "numeric",
second: "numeric", minute: "numeric",
}) second: "numeric",
} })
side="bottom" }
styleClasses="cursor-default" side="bottom"
> styleClasses="cursor-default"
<div className="flex cursor-default items-center gap-1.5 text-sm text-muted-foreground"> >
<IconComponent <div className="flex cursor-default items-center gap-1.5 text-sm text-muted-foreground">
name={isBuilding || saveLoading ? "Loader2" : "CheckCircle2"} <IconComponent
className={cn( name={isBuilding || saveLoading ? "Loader2" : "CheckCircle2"}
"h-4 w-4", className={cn(
isBuilding || saveLoading ? "animate-spin" : "animate-wiggle" "h-4 w-4",
)} isBuilding || saveLoading ? "animate-spin" : "animate-wiggle"
/> )}
{printByBuildStatus()} />
</div> {printByBuildStatus()}
</ShadTooltip> </div>
</ShadTooltip>
)}
</div> </div>
) : ( ) : (
<></> <></>

View file

@ -56,7 +56,7 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
setFlows: (flows: FlowType[]) => { setFlows: (flows: FlowType[]) => {
set({ set({
flows, flows,
// currentFlow: flows.find((flow) => flow.id === get().currentFlowId), currentFlow: flows.find((flow) => flow.id === get().currentFlowId),
}); });
}, },
currentFlow: undefined, currentFlow: undefined,
@ -96,18 +96,14 @@ const useFlowsManagerStore = create<FlowsManagerStoreType>((set, get) => ({
}); });
}); });
}, },
autoSaveCurrentFlow: debounce( autoSaveCurrentFlow: (nodes: Node[], edges: Edge[], viewport: Viewport) => {
(nodes: Node[], edges: Edge[], viewport: Viewport) => { if (get().currentFlow) {
set({ saveLoading: true }); get().saveFlow(
if (get().currentFlow) { { ...get().currentFlow!, data: { nodes, edges, viewport } },
get().saveFlow( true
{ ...get().currentFlow!, data: { nodes, edges, viewport } }, );
true }
); },
}
},
SAVE_DEBOUNCE_TIME
),
saveFlow: debounce((flow: FlowType, silent?: boolean) => { saveFlow: debounce((flow: FlowType, silent?: boolean) => {
set({ saveLoading: true }); set({ saveLoading: true });
return new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {