diff --git a/src/composables/useColorScheme.ts b/src/composables/useColorScheme.ts index e15948dd3..43fad38df 100644 --- a/src/composables/useColorScheme.ts +++ b/src/composables/useColorScheme.ts @@ -1,6 +1,7 @@ import {computed, watch, readonly} from 'vue' -import {useStorage, createSharedComposable, usePreferredColorScheme, tryOnMounted} from '@vueuse/core' +import {createSharedComposable, usePreferredColorScheme, tryOnMounted} from '@vueuse/core' import type {BasicColorSchema} from '@vueuse/core' +import {useAuthStore} from '@/stores/auth' const STORAGE_KEY = 'color-scheme' @@ -17,7 +18,8 @@ const CLASS_LIGHT = 'light' // - value is synced via `createSharedComposable` // https://github.com/vueuse/vueuse/blob/main/packages/core/useDark/index.ts export const useColorScheme = createSharedComposable(() => { - const store = useStorage(STORAGE_KEY, DEFAULT_COLOR_SCHEME_SETTING) + const authStore = useAuthStore() + const store = computed(() => authStore.settings.frontendSettings.colorSchema) const preferredColorScheme = usePreferredColorScheme() diff --git a/src/modelTypes/IUserSettings.ts b/src/modelTypes/IUserSettings.ts index 017939dd1..b1c120799 100644 --- a/src/modelTypes/IUserSettings.ts +++ b/src/modelTypes/IUserSettings.ts @@ -2,10 +2,12 @@ import type {IAbstract} from './IAbstract' import type {IProject} from './IProject' import type {PrefixMode} from '@/modules/parseTaskText' +import type {BasicColorSchema} from '@vueuse/core' export interface IFrontendSettings { playSoundWhenDone: boolean quickAddMagicMode: PrefixMode + colorSchema: BasicColorSchema } export interface IUserSettings extends IAbstract { diff --git a/src/models/userSettings.ts b/src/models/userSettings.ts index f3799d4b7..dd11e5987 100644 --- a/src/models/userSettings.ts +++ b/src/models/userSettings.ts @@ -18,6 +18,7 @@ export default class UserSettingsModel extends AbstractModel impl frontendSettings: IFrontendSettings = { playSoundWhenDone: true, quickAddMagicMode: PrefixMode.Default, + colorSchema: 'auto' } constructor(data: Partial = {}) { diff --git a/src/stores/auth.ts b/src/stores/auth.ts index b08a1a649..e8a7d371e 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -94,12 +94,14 @@ export const useAuthStore = defineStore('auth', () => { settings.value = new UserSettingsModel({ ...newSettings, frontendSettings: { - ...newSettings.frontendSettings, // Need to set default settings here in case the user does not have any saved in the api already + playSoundWhenDone: true, quickAddMagicMode: PrefixMode.Default, + colorSchema: 'auto', + ...newSettings.frontendSettings, } }) - console.log(settings.value.frontendSettings) + console.log('settings from auth store', {...settings.value.frontendSettings}) } function setAuthenticated(newAuthenticated: boolean) { diff --git a/src/views/user/settings/General.vue b/src/views/user/settings/General.vue index ce026d34b..44460adb5 100644 --- a/src/views/user/settings/General.vue +++ b/src/views/user/settings/General.vue @@ -111,7 +111,7 @@ {{ $t('user.settings.appearance.title') }}
-