Jotzy/frontend/src/stores/uiStore.ts

48 lines
1 KiB
TypeScript
Raw Normal View History

import { create } from "zustand";
import { persist } from "zustand/middleware";
interface UIState {
updating: boolean;
setUpdating: (update: boolean) => void;
showModal: boolean;
setShowModal: (show: boolean) => void;
sideBarResize: number;
setSideBarResize: (size: number) => void;
sideBarView: string;
setSideBarView: (view: string) => void;
}
export const useUIStore = create<UIState>()(
persist(
(set, get) => ({
updating: false,
setUpdating: (update) => {
set({ updating: update });
},
showModal: true,
setShowModal: (show) => {
set({ showModal: show });
},
sideBarResize: 300,
setSideBarResize: (size) => {
set({ sideBarResize: size });
},
sideBarView: "folders",
setSideBarView: (view) => {
set({ sideBarView: view });
},
}),
{
name: "ui-store",
partialize: (state) => {
return {
sideBarResize: state.sideBarResize,
};
},
},
),
);