import AsyncStorage from "@react-native-async-storage/async-storage"; import { create } from "zustand"; import { createJSONStorage, persist } from "zustand/middleware"; export type NotificationPrefs = { sms: boolean; email: boolean; push: boolean; orderUpdates: boolean; refillReminders: boolean; marketing: boolean; }; type PrefsState = NotificationPrefs & { setPref: (key: K, value: NotificationPrefs[K]) => void; setMany: (patch: Partial) => void; }; const defaults: NotificationPrefs = { sms: true, email: true, push: true, orderUpdates: true, refillReminders: true, marketing: false, }; export const usePrefsStore = create()( persist( (set) => ({ ...defaults, setPref: (key, value) => set({ [key]: value } as Partial), setMany: (patch) => set(patch), }), { name: "gishen-prefs", storage: createJSONStorage(() => AsyncStorage), } ) );