Files
Dorod-Sky/skyvern-frontend/src/store/WorkflowPanelStore.ts
Alex Angin 0b47482fcb Feature/workflow history (#3432)
Co-authored-by: Shuchang Zheng <wintonzheng0325@gmail.com>
2025-09-21 02:48:27 -04:00

61 lines
1.4 KiB
TypeScript

import { create } from "zustand";
import { WorkflowVersion } from "@/routes/workflows/hooks/useWorkflowVersionsQuery";
type WorkflowPanelState = {
active: boolean;
content:
| "cacheKeyValues"
| "parameters"
| "nodeLibrary"
| "history"
| "comparison";
data?: {
previous?: string | null;
next?: string | null;
parent?: string;
connectingEdgeType?: string;
disableLoop?: boolean;
// For comparison panel
version1?: WorkflowVersion;
version2?: WorkflowVersion;
showComparison?: boolean;
};
};
type WorkflowPanelStore = {
workflowPanelState: WorkflowPanelState;
closeWorkflowPanel: () => void;
setWorkflowPanelState: (state: WorkflowPanelState) => void;
toggleWorkflowPanel: () => void;
};
const useWorkflowPanelStore = create<WorkflowPanelStore>((set, get) => {
return {
workflowPanelState: {
active: false,
content: "parameters",
},
setWorkflowPanelState: (workflowPanelState: WorkflowPanelState) => {
set({ workflowPanelState });
},
closeWorkflowPanel: () => {
set({
workflowPanelState: {
...get().workflowPanelState,
active: false,
},
});
},
toggleWorkflowPanel: () => {
set({
workflowPanelState: {
...get().workflowPanelState,
active: !get().workflowPanelState.active,
},
});
},
};
});
export { useWorkflowPanelStore };