diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts index 90d80f02c6..efada79823 100644 --- a/packages/frontend/src/boot/common.ts +++ b/packages/frontend/src/boot/common.ts @@ -202,7 +202,7 @@ export async function common(createVue: () => App) { if (prefer.s.darkTheme == null && instance.defaultDarkTheme != null) prefer.set('darkTheme', JSON.parse(instance.defaultDarkTheme)); }); - watch(store.reactiveState.overridedDeviceKind, (kind) => { + watch(prefer.r.overridedDeviceKind, (kind) => { updateDeviceKind(kind); }, { immediate: true }); diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index cf56ec8640..2dcf8b3de7 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -154,6 +154,7 @@ export async function mainBoot() { prefer.set('lightTheme', ColdDeviceStorage.get('lightTheme')); prefer.set('darkTheme', ColdDeviceStorage.get('darkTheme')); prefer.set('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); + prefer.set('overridedDeviceKind', store.state.overridedDeviceKind); prefer.set('widgets', store.state.widgets); prefer.set('keepCw', store.state.keepCw); prefer.set('collapseRenotes', store.state.collapseRenotes); diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index 7e079940a5..d9e9e9a9bd 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -385,8 +385,7 @@ import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue'; const lang = ref(miLocalStorage.getItem('lang')); const dataSaver = ref(prefer.s.dataSaver); -const overridedDeviceKind = computed(store.makeGetterSetter('overridedDeviceKind')); - +const overridedDeviceKind = prefer.model('overridedDeviceKind'); const keepCw = prefer.model('keepCw'); const serverDisconnectedBehavior = prefer.model('serverDisconnectedBehavior'); const hemisphere = prefer.model('hemisphere'); diff --git a/packages/frontend/src/pizzax.ts b/packages/frontend/src/pizzax.ts index f53f19f342..871e454ff0 100644 --- a/packages/frontend/src/pizzax.ts +++ b/packages/frontend/src/pizzax.ts @@ -237,6 +237,7 @@ export class Storage { * 特定のキーの、簡易的なgetter/setterを作ります * 主にvue上で設定コントロールのmodelとして使う用 */ + // TODO: 廃止 public makeGetterSetter( key: K, getter?: (v: T[K]['default']) => R, diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index 089098006b..9ceea6b79b 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -8,6 +8,7 @@ import { hemisphere } from '@@/js/intl-const.js'; import type { Theme } from '@/theme.js'; import type { SoundType } from '@/utility/sound.js'; import type { Plugin } from '@/plugin.js'; +import type { DeviceKind } from '@/utility/device-kind.js'; import { DEFAULT_DEVICE_KIND } from '@/utility/device-kind.js'; /** サウンド設定 */ @@ -45,6 +46,9 @@ export const PREF_DEF = { }[], }, + overridedDeviceKind: { + default: null as DeviceKind | null, + }, themes: { default: [] as Theme[], }, diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 196ec782ff..8f718ebcdf 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -81,10 +81,6 @@ export const store = markRaw(new Storage('base', { }, }, }, - overridedDeviceKind: { - where: 'device', - default: null as DeviceKind | null, - }, darkMode: { where: 'device', default: false, @@ -153,6 +149,10 @@ export const store = markRaw(new Storage('base', { data: Record; }[], }, + overridedDeviceKind: { + where: 'device', + default: null as DeviceKind | null, + }, defaultSideView: { where: 'device', default: false,