Skip to content

Instantly share code, notes, and snippets.

@livemehere
Last active March 24, 2024 08:44
Show Gist options
  • Save livemehere/d683aeff483b2ab45519c4699495ca16 to your computer and use it in GitHub Desktop.
Save livemehere/d683aeff483b2ab45519c4699495ca16 to your computer and use it in GitHub Desktop.
zustand boiler template
import { create } from "zustand";
import { devtools } from "zustand/middleware";
import { immer } from "zustand/middleware/immer";
type State = {
isDarkMode: boolean;
};
type Actions = {
toggleDarkMode: () => void;
reset: () => void;
};
const initialState: State = {
isDarkMode: false,
};
export const useGlobalStore = create<State & Actions>()(
devtools(
immer((set) => ({
...initialState,
reset: () => set(initialState, false, "reset"),
toggleDarkMode: () =>
set(
(state) => {
state.isDarkMode = !state.isDarkMode;
},
false,
"toggleDarkMode",
),
})),
{ name: "globalStore" },
),
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment