@@ -3,25 +3,34 @@ import { defineInvoke, defineInvokeHandler } from '@moeru/eventa'
33import { useDisplayModelsStore } from ' @proj-airi/stage-ui/stores/display-models'
44import { useOnboardingStore } from ' @proj-airi/stage-ui/stores/onboarding'
55import { useSettings } from ' @proj-airi/stage-ui/stores/settings'
6+ import { useDark } from ' @vueuse/core'
67import { storeToRefs } from ' pinia'
78import { onMounted , watch } from ' vue'
89import { useI18n } from ' vue-i18n'
9- import { RouterView , useRouter } from ' vue-router'
10+ import { RouterView , useRoute , useRouter } from ' vue-router'
1011
1112import { electronOpenSettings , electronStartTrackMousePosition } from ' ../shared/eventa'
1213import { useElectronEventaContext } from ' ./composables/electron-vueuse'
14+ import { themeColorFromValue , useThemeColor } from ' ./composables/theme-color'
1315
16+ const dark = useDark ({ disableTransition: false })
1417const i18n = useI18n ()
1518const displayModelsStore = useDisplayModelsStore ()
1619const settingsStore = useSettings ()
1720const { language, themeColorsHue, themeColorsHueDynamic } = storeToRefs (settingsStore )
1821const onboardingStore = useOnboardingStore ()
1922const router = useRouter ()
23+ const route = useRoute ()
2024
2125watch (language , () => {
2226 i18n .locale .value = language .value
2327})
2428
29+ const { updateThemeColor } = useThemeColor (themeColorFromValue ({ light: ' rgb(255 255 255)' , dark: ' rgb(18 18 18)' }))
30+ watch (dark , () => updateThemeColor (), { immediate: true })
31+ watch (route , () => updateThemeColor (), { immediate: true })
32+ onMounted (() => updateThemeColor ())
33+
2534// FIXME: store settings to file
2635onMounted (async () => {
2736 onboardingStore .initializeSetupCheck ()
0 commit comments