From 922d5dc876d52674c54884ed9d46c99c55648e30 Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Thu, 7 May 2026 22:03:21 +0200 Subject: [PATCH] =?UTF-8?q?fix(stores):=20lazy-init=20theme/language=20?= =?UTF-8?q?=E2=80=94=20kein=20native=20API-Call=20beim=20Module-Load?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hermes wirft "property is not writable" + "Cannot read 'default' of undefined" wenn beim Module-Load eines Stores native APIs aufgerufen werden bevor die Bridge bereit ist. Die initialen Werte: - theme: colorScheme war resolveColorScheme('system') → ruft Appearance.getColorScheme() zur Module-Load-Zeit. Jetzt: 'light' als default; korrekter Wert kommt asynchron via init(). - language: language war (i18n.language === 'de' ? 'de' : 'en') → liest i18n.language zur Module-Load-Zeit (Risiko falls i18n noch nicht init). Jetzt: 'en' default; korrekter Wert kommt via init() das i18n.changeLanguage callt. Init-Calls passieren in _layout.tsx useEffect — nach Bridge-bereit, nach Hermes-Eval-Phase. Sicher. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/rebreak-native/stores/language.ts | 2 +- apps/rebreak-native/stores/theme.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/rebreak-native/stores/language.ts b/apps/rebreak-native/stores/language.ts index ac9aed5..7de8bf1 100644 --- a/apps/rebreak-native/stores/language.ts +++ b/apps/rebreak-native/stores/language.ts @@ -13,7 +13,7 @@ type LanguageState = { }; export const useLanguageStore = create((set) => ({ - language: (i18n.language === 'de' ? 'de' : 'en') as AppLanguage, + language: 'en', init: async () => { const stored = await AsyncStorage.getItem(STORAGE_KEY); diff --git a/apps/rebreak-native/stores/theme.ts b/apps/rebreak-native/stores/theme.ts index 99a8e94..bcabc2e 100644 --- a/apps/rebreak-native/stores/theme.ts +++ b/apps/rebreak-native/stores/theme.ts @@ -22,7 +22,7 @@ type ThemeState = { export const useThemeStore = create((set) => ({ mode: 'system', - colorScheme: resolveColorScheme('system'), + colorScheme: 'light', init: async () => { const stored = await AsyncStorage.getItem(STORAGE_KEY);