2024-11-08 18:53:30 +00:00

30 lines
695 B
TypeScript

import { create } from "zustand";
import { persist, createJSONStorage } from "zustand/middleware";
import AsyncStorage from "@react-native-async-storage/async-storage";
type Store = {
theme: "light" | "dark";
setTheme: (theme: "light" | "dark") => void;
toggle: () => void;
};
const useThemeStore = create(
persist<Store>(
(set) => ({
theme: "dark",
setTheme: (theme: "light" | "dark") => {
set({ theme });
},
toggle: () => {
set((state) => ({ theme: state.theme === "light" ? "dark" : "light" }));
},
}),
{
name: "theme",
storage: createJSONStorage(() => AsyncStorage),
}
)
);
export default useThemeStore;