@@ -13,13 +13,18 @@ import vCanCalendar from './directives/canCalendar'
1313const app = createApp ( App )
1414const 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.
2026const i18n = createI18n ( { legacy : false , globalInjection : true , locale : savedLang , fallbackLocale : 'en' , messages } )
2127
22- app . use ( pinia )
2328app . use ( router )
2429app . use ( i18n )
2530app . directive ( 'can' , vCan )
@@ -31,17 +36,10 @@ app.directive('can-calendar', vCanCalendar)
3136
3237app . 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)
3840try {
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