diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts index d09c6d39d2..d597e8a20a 100644 --- a/packages/frontend/src/boot/common.ts +++ b/packages/frontend/src/boot/common.ts @@ -198,8 +198,8 @@ export async function common(createVue: () => App) { fetchInstanceMetaPromise.then(() => { // TODO: instance.defaultLightTheme/instance.defaultDarkThemeが不正な形式だった場合のケア - if (prefer.s.lightTheme == null && instance.defaultLightTheme != null) prefer.set('lightTheme', JSON.parse(instance.defaultLightTheme)); - if (prefer.s.darkTheme == null && instance.defaultDarkTheme != null) prefer.set('darkTheme', JSON.parse(instance.defaultDarkTheme)); + if (prefer.s.lightTheme == null && instance.defaultLightTheme != null) prefer.commit('lightTheme', JSON.parse(instance.defaultLightTheme)); + if (prefer.s.darkTheme == null && instance.defaultDarkTheme != null) prefer.commit('darkTheme', JSON.parse(instance.defaultDarkTheme)); }); watch(prefer.r.overridedDeviceKind, (kind) => { diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index 411cf3f672..72b05ad05e 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -141,88 +141,88 @@ export async function mainBoot() { if (store.s.menu.length > 0) { const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []); if (themes.length > 0) { - prefer.set('themes', themes); + prefer.commit('themes', themes); } const plugins = ColdDeviceStorage.get('plugins'); - prefer.set('plugins', plugins.map(p => ({ + prefer.commit('plugins', plugins.map(p => ({ ...p, installId: (p as any).id, id: undefined, }))); - prefer.set('lightTheme', ColdDeviceStorage.get('lightTheme')); - prefer.set('darkTheme', ColdDeviceStorage.get('darkTheme')); - prefer.set('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); - prefer.set('overridedDeviceKind', store.s.overridedDeviceKind); - prefer.set('widgets', store.s.widgets); - prefer.set('keepCw', store.s.keepCw); - prefer.set('collapseRenotes', store.s.collapseRenotes); - prefer.set('rememberNoteVisibility', store.s.rememberNoteVisibility); - prefer.set('uploadFolder', store.s.uploadFolder); - prefer.set('keepOriginalUploading', store.s.keepOriginalUploading); - prefer.set('menu', store.s.menu); - prefer.set('statusbars', store.s.statusbars); - prefer.set('pinnedUserLists', store.s.pinnedUserLists); - prefer.set('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior); - prefer.set('nsfw', store.s.nsfw); - prefer.set('highlightSensitiveMedia', store.s.highlightSensitiveMedia); - prefer.set('animation', store.s.animation); - prefer.set('animatedMfm', store.s.animatedMfm); - prefer.set('advancedMfm', store.s.advancedMfm); - prefer.set('showReactionsCount', store.s.showReactionsCount); - prefer.set('enableQuickAddMfmFunction', store.s.enableQuickAddMfmFunction); - prefer.set('loadRawImages', store.s.loadRawImages); - prefer.set('imageNewTab', store.s.imageNewTab); - prefer.set('disableShowingAnimatedImages', store.s.disableShowingAnimatedImages); - prefer.set('emojiStyle', store.s.emojiStyle); - prefer.set('menuStyle', store.s.menuStyle); - prefer.set('useBlurEffectForModal', store.s.useBlurEffectForModal); - prefer.set('useBlurEffect', store.s.useBlurEffect); - prefer.set('showFixedPostForm', store.s.showFixedPostForm); - prefer.set('showFixedPostFormInChannel', store.s.showFixedPostFormInChannel); - prefer.set('enableInfiniteScroll', store.s.enableInfiniteScroll); - prefer.set('useReactionPickerForContextMenu', store.s.useReactionPickerForContextMenu); - prefer.set('showGapBetweenNotesInTimeline', store.s.showGapBetweenNotesInTimeline); - prefer.set('instanceTicker', store.s.instanceTicker); - prefer.set('emojiPickerScale', store.s.emojiPickerScale); - prefer.set('emojiPickerWidth', store.s.emojiPickerWidth); - prefer.set('emojiPickerHeight', store.s.emojiPickerHeight); - prefer.set('emojiPickerStyle', store.s.emojiPickerStyle); - prefer.set('reportError', store.s.reportError); - prefer.set('squareAvatars', store.s.squareAvatars); - prefer.set('showAvatarDecorations', store.s.showAvatarDecorations); - prefer.set('numberOfPageCache', store.s.numberOfPageCache); - prefer.set('showNoteActionsOnlyHover', store.s.showNoteActionsOnlyHover); - prefer.set('showClipButtonInNoteFooter', store.s.showClipButtonInNoteFooter); - prefer.set('reactionsDisplaySize', store.s.reactionsDisplaySize); - prefer.set('limitWidthOfReaction', store.s.limitWidthOfReaction); - prefer.set('forceShowAds', store.s.forceShowAds); - prefer.set('aiChanMode', store.s.aiChanMode); - prefer.set('devMode', store.s.devMode); - prefer.set('mediaListWithOneImageAppearance', store.s.mediaListWithOneImageAppearance); - prefer.set('notificationPosition', store.s.notificationPosition); - prefer.set('notificationStackAxis', store.s.notificationStackAxis); - prefer.set('enableCondensedLine', store.s.enableCondensedLine); - prefer.set('keepScreenOn', store.s.keepScreenOn); - prefer.set('disableStreamingTimeline', store.s.disableStreamingTimeline); - prefer.set('useGroupedNotifications', store.s.useGroupedNotifications); - prefer.set('dataSaver', store.s.dataSaver); - prefer.set('enableSeasonalScreenEffect', store.s.enableSeasonalScreenEffect); - prefer.set('enableHorizontalSwipe', store.s.enableHorizontalSwipe); - prefer.set('useNativeUiForVideoAudioPlayer', store.s.useNativeUIForVideoAudioPlayer); - prefer.set('keepOriginalFilename', store.s.keepOriginalFilename); - prefer.set('alwaysConfirmFollow', store.s.alwaysConfirmFollow); - prefer.set('confirmWhenRevealingSensitiveMedia', store.s.confirmWhenRevealingSensitiveMedia); - prefer.set('contextMenu', store.s.contextMenu); - prefer.set('skipNoteRender', store.s.skipNoteRender); - prefer.set('showSoftWordMutedWord', store.s.showSoftWordMutedWord); - prefer.set('confirmOnReact', store.s.confirmOnReact); - prefer.set('sound.masterVolume', store.s.sound_masterVolume); - prefer.set('sound.notUseSound', store.s.sound_notUseSound); - prefer.set('sound.useSoundOnlyWhenActive', store.s.sound_useSoundOnlyWhenActive); - prefer.set('sound.on.note', store.s.sound_note as any); - prefer.set('sound.on.noteMy', store.s.sound_noteMy as any); - prefer.set('sound.on.notification', store.s.sound_notification as any); - prefer.set('sound.on.reaction', store.s.sound_reaction as any); + prefer.commit('lightTheme', ColdDeviceStorage.get('lightTheme')); + prefer.commit('darkTheme', ColdDeviceStorage.get('darkTheme')); + prefer.commit('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); + prefer.commit('overridedDeviceKind', store.s.overridedDeviceKind); + prefer.commit('widgets', store.s.widgets); + prefer.commit('keepCw', store.s.keepCw); + prefer.commit('collapseRenotes', store.s.collapseRenotes); + prefer.commit('rememberNoteVisibility', store.s.rememberNoteVisibility); + prefer.commit('uploadFolder', store.s.uploadFolder); + prefer.commit('keepOriginalUploading', store.s.keepOriginalUploading); + prefer.commit('menu', store.s.menu); + prefer.commit('statusbars', store.s.statusbars); + prefer.commit('pinnedUserLists', store.s.pinnedUserLists); + prefer.commit('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior); + prefer.commit('nsfw', store.s.nsfw); + prefer.commit('highlightSensitiveMedia', store.s.highlightSensitiveMedia); + prefer.commit('animation', store.s.animation); + prefer.commit('animatedMfm', store.s.animatedMfm); + prefer.commit('advancedMfm', store.s.advancedMfm); + prefer.commit('showReactionsCount', store.s.showReactionsCount); + prefer.commit('enableQuickAddMfmFunction', store.s.enableQuickAddMfmFunction); + prefer.commit('loadRawImages', store.s.loadRawImages); + prefer.commit('imageNewTab', store.s.imageNewTab); + prefer.commit('disableShowingAnimatedImages', store.s.disableShowingAnimatedImages); + prefer.commit('emojiStyle', store.s.emojiStyle); + prefer.commit('menuStyle', store.s.menuStyle); + prefer.commit('useBlurEffectForModal', store.s.useBlurEffectForModal); + prefer.commit('useBlurEffect', store.s.useBlurEffect); + prefer.commit('showFixedPostForm', store.s.showFixedPostForm); + prefer.commit('showFixedPostFormInChannel', store.s.showFixedPostFormInChannel); + prefer.commit('enableInfiniteScroll', store.s.enableInfiniteScroll); + prefer.commit('useReactionPickerForContextMenu', store.s.useReactionPickerForContextMenu); + prefer.commit('showGapBetweenNotesInTimeline', store.s.showGapBetweenNotesInTimeline); + prefer.commit('instanceTicker', store.s.instanceTicker); + prefer.commit('emojiPickerScale', store.s.emojiPickerScale); + prefer.commit('emojiPickerWidth', store.s.emojiPickerWidth); + prefer.commit('emojiPickerHeight', store.s.emojiPickerHeight); + prefer.commit('emojiPickerStyle', store.s.emojiPickerStyle); + prefer.commit('reportError', store.s.reportError); + prefer.commit('squareAvatars', store.s.squareAvatars); + prefer.commit('showAvatarDecorations', store.s.showAvatarDecorations); + prefer.commit('numberOfPageCache', store.s.numberOfPageCache); + prefer.commit('showNoteActionsOnlyHover', store.s.showNoteActionsOnlyHover); + prefer.commit('showClipButtonInNoteFooter', store.s.showClipButtonInNoteFooter); + prefer.commit('reactionsDisplaySize', store.s.reactionsDisplaySize); + prefer.commit('limitWidthOfReaction', store.s.limitWidthOfReaction); + prefer.commit('forceShowAds', store.s.forceShowAds); + prefer.commit('aiChanMode', store.s.aiChanMode); + prefer.commit('devMode', store.s.devMode); + prefer.commit('mediaListWithOneImageAppearance', store.s.mediaListWithOneImageAppearance); + prefer.commit('notificationPosition', store.s.notificationPosition); + prefer.commit('notificationStackAxis', store.s.notificationStackAxis); + prefer.commit('enableCondensedLine', store.s.enableCondensedLine); + prefer.commit('keepScreenOn', store.s.keepScreenOn); + prefer.commit('disableStreamingTimeline', store.s.disableStreamingTimeline); + prefer.commit('useGroupedNotifications', store.s.useGroupedNotifications); + prefer.commit('dataSaver', store.s.dataSaver); + prefer.commit('enableSeasonalScreenEffect', store.s.enableSeasonalScreenEffect); + prefer.commit('enableHorizontalSwipe', store.s.enableHorizontalSwipe); + prefer.commit('useNativeUiForVideoAudioPlayer', store.s.useNativeUIForVideoAudioPlayer); + prefer.commit('keepOriginalFilename', store.s.keepOriginalFilename); + prefer.commit('alwaysConfirmFollow', store.s.alwaysConfirmFollow); + prefer.commit('confirmWhenRevealingSensitiveMedia', store.s.confirmWhenRevealingSensitiveMedia); + prefer.commit('contextMenu', store.s.contextMenu); + prefer.commit('skipNoteRender', store.s.skipNoteRender); + prefer.commit('showSoftWordMutedWord', store.s.showSoftWordMutedWord); + prefer.commit('confirmOnReact', store.s.confirmOnReact); + prefer.commit('sound.masterVolume', store.s.sound_masterVolume); + prefer.commit('sound.notUseSound', store.s.sound_notUseSound); + prefer.commit('sound.useSoundOnlyWhenActive', store.s.sound_useSoundOnlyWhenActive); + prefer.commit('sound.on.note', store.s.sound_note as any); + prefer.commit('sound.on.noteMy', store.s.sound_noteMy as any); + prefer.commit('sound.on.notification', store.s.sound_notification as any); + prefer.commit('sound.on.reaction', store.s.sound_reaction as any); store.set('deck.profile', deckStore.state.profile); store.set('deck.columns', deckStore.state.columns); store.set('deck.layout', deckStore.state.layout); diff --git a/packages/frontend/src/components/MkDrive.folder.vue b/packages/frontend/src/components/MkDrive.folder.vue index 7b8d81f7f0..3bcd934f8a 100644 --- a/packages/frontend/src/components/MkDrive.folder.vue +++ b/packages/frontend/src/components/MkDrive.folder.vue @@ -245,7 +245,7 @@ function deleteFolder() { folderId: props.folder.id, }).then(() => { if (prefer.s.uploadFolder === props.folder.id) { - prefer.set('uploadFolder', null); + prefer.commit('uploadFolder', null); } }).catch(err => { switch (err.id) { @@ -266,7 +266,7 @@ function deleteFolder() { } function setAsUploadFolder() { - prefer.set('uploadFolder', props.folder.id); + prefer.commit('uploadFolder', props.folder.id); } function onContextmenu(ev: MouseEvent) { diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 8dbb2a80d6..6a72663157 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -179,7 +179,7 @@ const useCw = ref(!!props.initialCw); const showPreview = ref(store.s.showPreview); watch(showPreview, () => store.set('showPreview', showPreview.value)); const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction); -watch(showAddMfmFunction, () => prefer.set('enableQuickAddMfmFunction', showAddMfmFunction.value)); +watch(showAddMfmFunction, () => prefer.commit('enableQuickAddMfmFunction', showAddMfmFunction.value)); const cw = ref(props.initialCw ?? null); const localOnly = ref(props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.s.localOnly : prefer.s.defaultNoteLocalOnly)); const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.s.visibility : prefer.s.defaultNoteVisibility)); diff --git a/packages/frontend/src/pages/drop-and-fusion.game.vue b/packages/frontend/src/pages/drop-and-fusion.game.vue index 6a48cde290..d34702fd07 100644 --- a/packages/frontend/src/pages/drop-and-fusion.game.vue +++ b/packages/frontend/src/pages/drop-and-fusion.game.vue @@ -858,7 +858,7 @@ function updateSettings< >(key: K, value: V) { const changes: { [P in K]?: V } = {}; changes[key] = value; - prefer.set('game.dropAndFusion', { + prefer.commit('game.dropAndFusion', { ...prefer.s['game.dropAndFusion'], ...changes, }); diff --git a/packages/frontend/src/pages/settings/drive.vue b/packages/frontend/src/pages/settings/drive.vue index aab04ebc9c..8e7c7e82df 100644 --- a/packages/frontend/src/pages/settings/drive.vue +++ b/packages/frontend/src/pages/settings/drive.vue @@ -144,7 +144,7 @@ if (prefer.s.uploadFolder) { function chooseUploadFolder() { os.selectDriveFolder(false).then(async folder => { - prefer.set('uploadFolder', folder[0] ? folder[0].id : null); + prefer.commit('uploadFolder', folder[0] ? folder[0].id : null); os.success(); if (prefer.s.uploadFolder) { uploadFolder.value = await misskeyApi('drive/folders/show', { diff --git a/packages/frontend/src/pages/settings/navbar.vue b/packages/frontend/src/pages/settings/navbar.vue index bb2b201afb..28e6bcc161 100644 --- a/packages/frontend/src/pages/settings/navbar.vue +++ b/packages/frontend/src/pages/settings/navbar.vue @@ -91,7 +91,7 @@ function removeItem(index: number) { } async function save() { - prefer.set('menu', items.value.map(x => x.type)); + prefer.commit('menu', items.value.map(x => x.type)); await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true }); } diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue index bf762d8aeb..f3f52d0914 100644 --- a/packages/frontend/src/pages/settings/preferences.vue +++ b/packages/frontend/src/pages/settings/preferences.vue @@ -488,11 +488,11 @@ async function setPinnedList() { if (canceled) return; if (list == null) return; - prefer.set('pinnedUserLists', [list]); + prefer.commit('pinnedUserLists', [list]); } function removePinnedList() { - prefer.set('pinnedUserLists', []); + prefer.commit('pinnedUserLists', []); } function enableAllDataSaver() { @@ -512,7 +512,7 @@ function disableAllDataSaver() { } watch(dataSaver, (to) => { - prefer.set('dataSaver', to); + prefer.commit('dataSaver', to); }, { deep: true, }); diff --git a/packages/frontend/src/pages/settings/sounds.vue b/packages/frontend/src/pages/settings/sounds.vue index 7d800a8a37..ea634646f6 100644 --- a/packages/frontend/src/pages/settings/sounds.vue +++ b/packages/frontend/src/pages/settings/sounds.vue @@ -101,14 +101,14 @@ async function updated(type: keyof typeof sounds.value, sound) { volume: sound.volume, }; - prefer.set(`sound.on.${type}`, v); + prefer.commit(`sound.on.${type}`, v); sounds.value[type] = v; } function reset() { for (const sound of Object.keys(sounds.value) as Array) { const v = PREF_DEF[`sound.on.${sound}`].default; - prefer.set(`sound.on.${sound}`, v); + prefer.commit(`sound.on.${sound}`, v); sounds.value[sound] = v; } } diff --git a/packages/frontend/src/pages/settings/statusbar.statusbar.vue b/packages/frontend/src/pages/settings/statusbar.statusbar.vue index 55d976295a..dbb640123a 100644 --- a/packages/frontend/src/pages/settings/statusbar.statusbar.vue +++ b/packages/frontend/src/pages/settings/statusbar.statusbar.vue @@ -137,10 +137,10 @@ async function save() { const i = prefer.s.statusbars.findIndex(x => x.id === props._id); const statusbars = deepClone(prefer.s.statusbars); statusbars[i] = deepClone(statusbar); - prefer.set('statusbars', statusbars); + prefer.commit('statusbars', statusbars); } function del() { - prefer.set('statusbars', prefer.s.statusbars.filter(x => x.id !== props._id)); + prefer.commit('statusbars', prefer.s.statusbars.filter(x => x.id !== props._id)); } diff --git a/packages/frontend/src/pages/settings/statusbar.vue b/packages/frontend/src/pages/settings/statusbar.vue index 2737af3aa4..7b09093c85 100644 --- a/packages/frontend/src/pages/settings/statusbar.vue +++ b/packages/frontend/src/pages/settings/statusbar.vue @@ -37,7 +37,7 @@ onMounted(() => { }); async function add() { - prefer.set('statusbars', [...statusbars.value, { + prefer.commit('statusbars', [...statusbars.value, { id: uuid(), type: null, black: false, diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue index 397c387af6..f536b92599 100644 --- a/packages/frontend/src/pages/settings/theme.vue +++ b/packages/frontend/src/pages/settings/theme.vue @@ -179,7 +179,7 @@ const darkThemeId = computed({ set(id) { const t = themes.value.find(x => x.id === id); if (t) { // テーマエディタでテーマを作成したときなどは、themesに反映されないため undefined になる - prefer.set('darkTheme', t); + prefer.commit('darkTheme', t); } }, }); @@ -191,7 +191,7 @@ const lightThemeId = computed({ set(id) { const t = themes.value.find(x => x.id === id); if (t) { // テーマエディタでテーマを作成したときなどは、themesに反映されないため undefined になる - prefer.set('lightTheme', t); + prefer.commit('lightTheme', t); } }, }); diff --git a/packages/frontend/src/pages/theme-editor.vue b/packages/frontend/src/pages/theme-editor.vue index 64e16987a9..43ac5f38d7 100644 --- a/packages/frontend/src/pages/theme-editor.vue +++ b/packages/frontend/src/pages/theme-editor.vue @@ -201,9 +201,9 @@ async function saveAs() { await addTheme(theme.value); applyTheme(theme.value); if (store.s.darkMode) { - prefer.set('darkTheme', theme.value); + prefer.commit('darkTheme', theme.value); } else { - prefer.set('lightTheme', theme.value); + prefer.commit('lightTheme', theme.value); } changed.value = false; os.alert({ diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts index 25d69cd727..1b51850e77 100644 --- a/packages/frontend/src/plugin.ts +++ b/packages/frontend/src/plugin.ts @@ -145,7 +145,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) { src: code, }; - prefer.set('plugins', prefer.s.plugins.concat(plugin)); + prefer.commit('plugins', prefer.s.plugins.concat(plugin)); await authorizePlugin(plugin); @@ -154,7 +154,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) { export async function uninstallPlugin(plugin: Plugin) { abortPlugin(plugin); - prefer.set('plugins', prefer.s.plugins.filter(x => x.installId !== plugin.installId)); + prefer.commit('plugins', prefer.s.plugins.filter(x => x.installId !== plugin.installId)); if (Object.hasOwn(store.s.pluginTokens, plugin.installId)) { await os.apiWithDialog('i/revoke-token', { token: store.s.pluginTokens[plugin.installId], @@ -311,13 +311,13 @@ export async function configPlugin(plugin: Plugin) { const { canceled, result } = await os.form(plugin.name, config); if (canceled) return; - prefer.set('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, configData: result } : x)); + prefer.commit('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, configData: result } : x)); reloadPlugin(plugin); } export function changePluginActive(plugin: Plugin, active: boolean) { - prefer.set('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, active } : x)); + prefer.commit('plugins', prefer.s.plugins.map(x => x.installId === plugin.installId ? { ...x, active } : x)); if (active) { launchPlugin(plugin.installId); diff --git a/packages/frontend/src/preferences/profile.ts b/packages/frontend/src/preferences/profile.ts index 1d03639d37..c1320b0dcc 100644 --- a/packages/frontend/src/preferences/profile.ts +++ b/packages/frontend/src/preferences/profile.ts @@ -222,7 +222,7 @@ export class ProfileManager extends EventEmitter<{ text: i18n.ts.resetToDefaultValue, danger: true, action: () => { - this.store.set(key, PREF_DEF[key].default); + this.store.commit(key, PREF_DEF[key].default); }, }, { type: 'divider', diff --git a/packages/frontend/src/preferences/store.ts b/packages/frontend/src/preferences/store.ts index 58684ce024..e10afcc308 100644 --- a/packages/frontend/src/preferences/store.ts +++ b/packages/frontend/src/preferences/store.ts @@ -44,7 +44,7 @@ export class Store> extends EventEmitter(key: K, value: Data[K]) { + public commit(key: K, value: Data[K]) { this.r[key].value = this.s[key] = value; this.emit('updated', { key, value }); } @@ -84,7 +84,7 @@ export class Store> extends EventEmitter { const val = setter ? setter(value) : value; - this.set(key, val); + this.commit(key, val); valueRef.value = val; }, }); diff --git a/packages/frontend/src/theme-store.ts b/packages/frontend/src/theme-store.ts index c02005a15c..5d09ec27f9 100644 --- a/packages/frontend/src/theme-store.ts +++ b/packages/frontend/src/theme-store.ts @@ -23,11 +23,11 @@ export async function addTheme(theme: Theme): Promise { if (themes.some(t => t.id === theme.id)) { throw new Error('already exists'); } - prefer.set('themes', [...themes, theme]); + prefer.commit('themes', [...themes, theme]); } export async function removeTheme(theme: Theme): Promise { if ($i == null) return; const themes = getThemes().filter(t => t.id !== theme.id); - prefer.set('themes', themes); + prefer.commit('themes', themes); } diff --git a/packages/frontend/src/ui/classic.vue b/packages/frontend/src/ui/classic.vue index 3d4e8ed19d..3faacc5125 100644 --- a/packages/frontend/src/ui/classic.vue +++ b/packages/frontend/src/ui/classic.vue @@ -144,7 +144,7 @@ if (window.innerWidth < 1024) { document.documentElement.style.overflowY = 'scroll'; if (prefer.s.widgets.length === 0) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ name: 'calendar', id: 'a', place: null, data: {}, }, { diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue index 633eca7542..8d0015a046 100644 --- a/packages/frontend/src/ui/universal.vue +++ b/packages/frontend/src/ui/universal.vue @@ -178,7 +178,7 @@ if (window.innerWidth > 1024) { } if (prefer.s.widgets.length === 0) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ name: 'calendar', id: 'a', place: 'right', data: {}, }, { diff --git a/packages/frontend/src/ui/universal.widgets.vue b/packages/frontend/src/ui/universal.widgets.vue index ea2b7f2cf2..1a6d62e19b 100644 --- a/packages/frontend/src/ui/universal.widgets.vue +++ b/packages/frontend/src/ui/universal.widgets.vue @@ -37,18 +37,18 @@ const widgets = computed(() => { }); function addWidget(widget) { - prefer.set('widgets', [{ + prefer.commit('widgets', [{ ...widget, place: props.place, }, ...prefer.s.widgets]); } function removeWidget(widget) { - prefer.set('widgets', prefer.s.widgets.filter(w => w.id !== widget.id)); + prefer.commit('widgets', prefer.s.widgets.filter(w => w.id !== widget.id)); } function updateWidget({ id, data }) { - prefer.set('widgets', prefer.s.widgets.map(w => w.id === id ? { + prefer.commit('widgets', prefer.s.widgets.map(w => w.id === id ? { ...w, data, place: props.place, @@ -57,17 +57,17 @@ function updateWidget({ id, data }) { function updateWidgets(thisWidgets) { if (props.place === null) { - prefer.set('widgets', thisWidgets); + prefer.commit('widgets', thisWidgets); return; } if (props.place === 'left') { - prefer.set('widgets', [ + prefer.commit('widgets', [ ...thisWidgets.map(w => ({ ...w, place: 'left' })), ...prefer.s.widgets.filter(w => w.place !== 'left' && !thisWidgets.some(t => w.id === t.id)), ]); return; } - prefer.set('widgets', [ + prefer.commit('widgets', [ ...prefer.s.widgets.filter(w => w.place === 'left' && !thisWidgets.some(t => w.id === t.id)), ...thisWidgets.map(w => ({ ...w, place: 'right' })), ]);