import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import type { NotificationPreference } from '@/types'; import { encryptedStorage } from '@/services/encryptedStorage'; /** * TODO: Wire updatePreferences to notificationService.updatePreferences() for production. * Current implementation is local-only (AsyncStorage) for offline-first MVP. */ interface SettingsState { preferences: NotificationPreference; isBiometricEnabled: boolean; updatePreferences: (prefs: Partial) => void; toggleBiometric: (enabled: boolean) => void; } const defaultPreferences: NotificationPreference = { emailNotifications: true, pushNotifications: true, darkwatchAlert: true, spamBlocked: true, voiceprintAnalysis: true, }; export const useSettingsStore = create()( persist( (set) => ({ preferences: defaultPreferences, isBiometricEnabled: false, updatePreferences: (prefs) => { set((state) => ({ preferences: { ...state.preferences, ...prefs }, })); }, toggleBiometric: (enabled) => set({ isBiometricEnabled: enabled }), }), { name: '@shieldai_settings', storage: encryptedStorage, } ) );