import { create } from 'zustand'; import Taro from '@tarojs/taro'; type DisplayMode = 'normal' | 'elder'; interface UIState { mode: DisplayMode; toggle: () => void; setMode: (mode: DisplayMode) => void; restore: () => void; } const STORAGE_KEY = 'ui_display_mode'; export const useUIStore = create((set, get) => ({ mode: 'normal', toggle: () => { const next = get().mode === 'normal' ? 'elder' : 'normal'; Taro.setStorageSync(STORAGE_KEY, next); set({ mode: next }); }, setMode: (mode) => { Taro.setStorageSync(STORAGE_KEY, mode); set({ mode }); }, restore: () => { try { const saved = Taro.getStorageSync(STORAGE_KEY); if (saved === 'elder' || saved === 'normal') { if (get().mode !== saved) set({ mode: saved }); } } catch { /* storage 不可用时保持默认 */ } }, }));