Mobile App design
Run Tests on Branches / Detect Changes (push) Successful in 10s
Run Tests on Branches / Backend Tests (push) Successful in 2m12s
Run Tests on Branches / Frontend Tests (push) Has been skipped
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m47s

This commit is contained in:
Ichitux
2026-07-09 13:33:54 +02:00
parent 5f604b11ba
commit 2f36ef685d
32 changed files with 1793 additions and 926 deletions
+30
View File
@@ -0,0 +1,30 @@
import { create } from 'zustand';
import AsyncStorage from '@react-native-async-storage/async-storage';
export type ThemeMode = 'light' | 'dark' | 'system';
interface ThemeState {
mode: ThemeMode;
setMode: (mode: ThemeMode) => Promise<void>;
init: () => Promise<void>;
}
const STORAGE_KEY = '@theme_mode';
export const useThemeStore = create<ThemeState>((set) => ({
mode: 'system',
setMode: async (mode: ThemeMode) => {
set({ mode });
await AsyncStorage.setItem(STORAGE_KEY, mode);
},
init: async () => {
try {
const saved = await AsyncStorage.getItem(STORAGE_KEY);
if (saved === 'light' || saved === 'dark' || saved === 'system') {
set({ mode: saved });
}
} catch {}
},
}));