Files
JKVideo/store/settingsStore.ts
Developer 3f82646496 init
2026-03-26 12:15:40 +08:00

37 lines
929 B
TypeScript

import { create } from 'zustand';
import AsyncStorage from '@react-native-async-storage/async-storage';
interface SettingsState {
darkMode: boolean;
trafficSaving: boolean;
setDarkMode: (v: boolean) => Promise<void>;
setTrafficSaving: (v: boolean) => Promise<void>;
restore: () => Promise<void>;
}
export const useSettingsStore = create<SettingsState>((set) => ({
darkMode: false,
trafficSaving: false,
setDarkMode: async (v) => {
await AsyncStorage.setItem('DARK_MODE', v ? '1' : '0');
set({ darkMode: v });
},
setTrafficSaving: async (v) => {
await AsyncStorage.setItem('TRAFFIC_SAVING', v ? '1' : '0');
set({ trafficSaving: v });
},
restore: async () => {
const [dm, ts] = await Promise.all([
AsyncStorage.getItem('DARK_MODE'),
AsyncStorage.getItem('TRAFFIC_SAVING'),
]);
set({
darkMode: dm === '1',
trafficSaving: ts === '1',
});
},
}));