From d8ae2bf455b87b8c53beec5aaccd060b0141557c Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Mon, 2 Sep 2024 14:12:42 +0200 Subject: [PATCH] feat: integrate Zustand for global state management and apply it to the sidebar --- store/index.ts | 1 + store/ui/ui-store.ts | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 store/index.ts create mode 100644 store/ui/ui-store.ts diff --git a/store/index.ts b/store/index.ts new file mode 100644 index 0000000000..36c2042a88 --- /dev/null +++ b/store/index.ts @@ -0,0 +1 @@ +export * from "./ui/ui-store"; diff --git a/store/ui/ui-store.ts b/store/ui/ui-store.ts new file mode 100644 index 0000000000..b47d474c94 --- /dev/null +++ b/store/ui/ui-store.ts @@ -0,0 +1,22 @@ +import { create } from "zustand"; +import { persist } from "zustand/middleware"; + +interface SidebarStoreState { + isSideMenuOpen: boolean; + + openSideMenu: () => void; + closeSideMenu: () => void; +} + +export const useUIStore = create()( + persist( + (set) => ({ + isSideMenuOpen: true, + openSideMenu: () => set({ isSideMenuOpen: true }), + closeSideMenu: () => set({ isSideMenuOpen: false }), + }), + { + name: "sidebar-store", + }, + ), +);