Skip to content

Commit f8cb2e5

Browse files
committed
fix(setup): load setup store before router to ensure TEST_MODE applies early
1 parent 8cdc188 commit f8cb2e5

1 file changed

Lines changed: 9 additions & 11 deletions

File tree

src/main.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,18 @@ import vCanCalendar from './directives/canCalendar'
1313
const app = createApp(App)
1414
const pinia = createPinia()
1515

16-
const savedLang = localStorage.getItem('lang') || 'de'
16+
// Load setup BEFORE router to ensure VITE_TEST_MODE is applied before first navigation
17+
app.use(pinia)
18+
const { useSetupStore } = await import('./store/setup')
19+
const setupStore = useSetupStore(pinia)
20+
setupStore.load()
21+
22+
const savedLang = setupStore.language || localStorage.getItem('lang') || 'de'
1723
// Use the Composition API mode for vue-i18n (legacy: false) and enable global injection
1824
// so templates can still use $t. This allows `useI18n()` in setup() and keeps
1925
// legacy-style template usage available via globalInjection.
2026
const i18n = createI18n({ legacy: false, globalInjection: true, locale: savedLang, fallbackLocale: 'en', messages })
2127

22-
app.use(pinia)
2328
app.use(router)
2429
app.use(i18n)
2530
app.directive('can', vCan)
@@ -31,17 +36,10 @@ app.directive('can-calendar', vCanCalendar)
3136

3237
app.mount('#app')
3338

34-
// Load persisted setup and apply language + demo data initialization
35-
try {
36-
const setupStore = (pinia as any)._s || undefined
37-
} catch (e) {}
39+
// Initialize demo stores that respect demoMode (setup already loaded before mount)
3840
try {
39-
// import stores dynamically to avoid tree-shaking issues
40-
const { useSetupStore } = await import('./store/setup')
41-
const setup = useSetupStore(pinia)
42-
setup.load()
4341
// apply saved language to i18n global
44-
try { (i18n as any).global.locale.value = setup.language || savedLang } catch (e) {}
42+
try { (i18n as any).global.locale.value = setupStore.language || savedLang } catch (e) {}
4543
// initialize demo stores that respect demoMode
4644
try {
4745
const { useMembersStore } = await import('./stores/membersStore')

0 commit comments

Comments
 (0)