import { create } from "zustand"; import { DEFAULT_PREFERENCES, loadPreferences, onPreferencesChange, type Preferences, } from "./store"; type State = Preferences & { hydrated: boolean; /** Subscribe & hydrate. Idempotent — safe to call from multiple windows. */ init: () => Promise; }; let initialized = false; export const usePreferencesStore = create((set) => ({ ...DEFAULT_PREFERENCES, hydrated: false, init: async () => { if (initialized) return; initialized = true; const prefs = await loadPreferences(); set({ ...prefs, hydrated: true }); void onPreferencesChange((key, value) => { set({ [key]: value } as Partial); }); }, }));