refactor(frontend): rename store.set -> store.commit

This commit is contained in:
syuilo 2025-03-10 11:27:07 +09:00
parent 08f7e7d9b3
commit b200743845
20 changed files with 113 additions and 113 deletions

View File

@ -198,8 +198,8 @@ export async function common(createVue: () => App<Element>) {
fetchInstanceMetaPromise.then(() => { fetchInstanceMetaPromise.then(() => {
// TODO: instance.defaultLightTheme/instance.defaultDarkThemeが不正な形式だった場合のケア // TODO: instance.defaultLightTheme/instance.defaultDarkThemeが不正な形式だった場合のケア
if (prefer.s.lightTheme == null && instance.defaultLightTheme != null) prefer.set('lightTheme', JSON.parse(instance.defaultLightTheme)); if (prefer.s.lightTheme == null && instance.defaultLightTheme != null) prefer.commit('lightTheme', JSON.parse(instance.defaultLightTheme));
if (prefer.s.darkTheme == null && instance.defaultDarkTheme != null) prefer.set('darkTheme', JSON.parse(instance.defaultDarkTheme)); if (prefer.s.darkTheme == null && instance.defaultDarkTheme != null) prefer.commit('darkTheme', JSON.parse(instance.defaultDarkTheme));
}); });
watch(prefer.r.overridedDeviceKind, (kind) => { watch(prefer.r.overridedDeviceKind, (kind) => {

View File

@ -141,88 +141,88 @@ export async function mainBoot() {
if (store.s.menu.length > 0) { if (store.s.menu.length > 0) {
const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []); const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []);
if (themes.length > 0) { if (themes.length > 0) {
prefer.set('themes', themes); prefer.commit('themes', themes);
} }
const plugins = ColdDeviceStorage.get('plugins'); const plugins = ColdDeviceStorage.get('plugins');
prefer.set('plugins', plugins.map(p => ({ prefer.commit('plugins', plugins.map(p => ({
...p, ...p,
installId: (p as any).id, installId: (p as any).id,
id: undefined, id: undefined,
}))); })));
prefer.set('lightTheme', ColdDeviceStorage.get('lightTheme')); prefer.commit('lightTheme', ColdDeviceStorage.get('lightTheme'));
prefer.set('darkTheme', ColdDeviceStorage.get('darkTheme')); prefer.commit('darkTheme', ColdDeviceStorage.get('darkTheme'));
prefer.set('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode')); prefer.commit('syncDeviceDarkMode', ColdDeviceStorage.get('syncDeviceDarkMode'));
prefer.set('overridedDeviceKind', store.s.overridedDeviceKind); prefer.commit('overridedDeviceKind', store.s.overridedDeviceKind);
prefer.set('widgets', store.s.widgets); prefer.commit('widgets', store.s.widgets);
prefer.set('keepCw', store.s.keepCw); prefer.commit('keepCw', store.s.keepCw);
prefer.set('collapseRenotes', store.s.collapseRenotes); prefer.commit('collapseRenotes', store.s.collapseRenotes);
prefer.set('rememberNoteVisibility', store.s.rememberNoteVisibility); prefer.commit('rememberNoteVisibility', store.s.rememberNoteVisibility);
prefer.set('uploadFolder', store.s.uploadFolder); prefer.commit('uploadFolder', store.s.uploadFolder);
prefer.set('keepOriginalUploading', store.s.keepOriginalUploading); prefer.commit('keepOriginalUploading', store.s.keepOriginalUploading);
prefer.set('menu', store.s.menu); prefer.commit('menu', store.s.menu);
prefer.set('statusbars', store.s.statusbars); prefer.commit('statusbars', store.s.statusbars);
prefer.set('pinnedUserLists', store.s.pinnedUserLists); prefer.commit('pinnedUserLists', store.s.pinnedUserLists);
prefer.set('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior); prefer.commit('serverDisconnectedBehavior', store.s.serverDisconnectedBehavior);
prefer.set('nsfw', store.s.nsfw); prefer.commit('nsfw', store.s.nsfw);
prefer.set('highlightSensitiveMedia', store.s.highlightSensitiveMedia); prefer.commit('highlightSensitiveMedia', store.s.highlightSensitiveMedia);
prefer.set('animation', store.s.animation); prefer.commit('animation', store.s.animation);
prefer.set('animatedMfm', store.s.animatedMfm); prefer.commit('animatedMfm', store.s.animatedMfm);
prefer.set('advancedMfm', store.s.advancedMfm); prefer.commit('advancedMfm', store.s.advancedMfm);
prefer.set('showReactionsCount', store.s.showReactionsCount); prefer.commit('showReactionsCount', store.s.showReactionsCount);
prefer.set('enableQuickAddMfmFunction', store.s.enableQuickAddMfmFunction); prefer.commit('enableQuickAddMfmFunction', store.s.enableQuickAddMfmFunction);
prefer.set('loadRawImages', store.s.loadRawImages); prefer.commit('loadRawImages', store.s.loadRawImages);
prefer.set('imageNewTab', store.s.imageNewTab); prefer.commit('imageNewTab', store.s.imageNewTab);
prefer.set('disableShowingAnimatedImages', store.s.disableShowingAnimatedImages); prefer.commit('disableShowingAnimatedImages', store.s.disableShowingAnimatedImages);
prefer.set('emojiStyle', store.s.emojiStyle); prefer.commit('emojiStyle', store.s.emojiStyle);
prefer.set('menuStyle', store.s.menuStyle); prefer.commit('menuStyle', store.s.menuStyle);
prefer.set('useBlurEffectForModal', store.s.useBlurEffectForModal); prefer.commit('useBlurEffectForModal', store.s.useBlurEffectForModal);
prefer.set('useBlurEffect', store.s.useBlurEffect); prefer.commit('useBlurEffect', store.s.useBlurEffect);
prefer.set('showFixedPostForm', store.s.showFixedPostForm); prefer.commit('showFixedPostForm', store.s.showFixedPostForm);
prefer.set('showFixedPostFormInChannel', store.s.showFixedPostFormInChannel); prefer.commit('showFixedPostFormInChannel', store.s.showFixedPostFormInChannel);
prefer.set('enableInfiniteScroll', store.s.enableInfiniteScroll); prefer.commit('enableInfiniteScroll', store.s.enableInfiniteScroll);
prefer.set('useReactionPickerForContextMenu', store.s.useReactionPickerForContextMenu); prefer.commit('useReactionPickerForContextMenu', store.s.useReactionPickerForContextMenu);
prefer.set('showGapBetweenNotesInTimeline', store.s.showGapBetweenNotesInTimeline); prefer.commit('showGapBetweenNotesInTimeline', store.s.showGapBetweenNotesInTimeline);
prefer.set('instanceTicker', store.s.instanceTicker); prefer.commit('instanceTicker', store.s.instanceTicker);
prefer.set('emojiPickerScale', store.s.emojiPickerScale); prefer.commit('emojiPickerScale', store.s.emojiPickerScale);
prefer.set('emojiPickerWidth', store.s.emojiPickerWidth); prefer.commit('emojiPickerWidth', store.s.emojiPickerWidth);
prefer.set('emojiPickerHeight', store.s.emojiPickerHeight); prefer.commit('emojiPickerHeight', store.s.emojiPickerHeight);
prefer.set('emojiPickerStyle', store.s.emojiPickerStyle); prefer.commit('emojiPickerStyle', store.s.emojiPickerStyle);
prefer.set('reportError', store.s.reportError); prefer.commit('reportError', store.s.reportError);
prefer.set('squareAvatars', store.s.squareAvatars); prefer.commit('squareAvatars', store.s.squareAvatars);
prefer.set('showAvatarDecorations', store.s.showAvatarDecorations); prefer.commit('showAvatarDecorations', store.s.showAvatarDecorations);
prefer.set('numberOfPageCache', store.s.numberOfPageCache); prefer.commit('numberOfPageCache', store.s.numberOfPageCache);
prefer.set('showNoteActionsOnlyHover', store.s.showNoteActionsOnlyHover); prefer.commit('showNoteActionsOnlyHover', store.s.showNoteActionsOnlyHover);
prefer.set('showClipButtonInNoteFooter', store.s.showClipButtonInNoteFooter); prefer.commit('showClipButtonInNoteFooter', store.s.showClipButtonInNoteFooter);
prefer.set('reactionsDisplaySize', store.s.reactionsDisplaySize); prefer.commit('reactionsDisplaySize', store.s.reactionsDisplaySize);
prefer.set('limitWidthOfReaction', store.s.limitWidthOfReaction); prefer.commit('limitWidthOfReaction', store.s.limitWidthOfReaction);
prefer.set('forceShowAds', store.s.forceShowAds); prefer.commit('forceShowAds', store.s.forceShowAds);
prefer.set('aiChanMode', store.s.aiChanMode); prefer.commit('aiChanMode', store.s.aiChanMode);
prefer.set('devMode', store.s.devMode); prefer.commit('devMode', store.s.devMode);
prefer.set('mediaListWithOneImageAppearance', store.s.mediaListWithOneImageAppearance); prefer.commit('mediaListWithOneImageAppearance', store.s.mediaListWithOneImageAppearance);
prefer.set('notificationPosition', store.s.notificationPosition); prefer.commit('notificationPosition', store.s.notificationPosition);
prefer.set('notificationStackAxis', store.s.notificationStackAxis); prefer.commit('notificationStackAxis', store.s.notificationStackAxis);
prefer.set('enableCondensedLine', store.s.enableCondensedLine); prefer.commit('enableCondensedLine', store.s.enableCondensedLine);
prefer.set('keepScreenOn', store.s.keepScreenOn); prefer.commit('keepScreenOn', store.s.keepScreenOn);
prefer.set('disableStreamingTimeline', store.s.disableStreamingTimeline); prefer.commit('disableStreamingTimeline', store.s.disableStreamingTimeline);
prefer.set('useGroupedNotifications', store.s.useGroupedNotifications); prefer.commit('useGroupedNotifications', store.s.useGroupedNotifications);
prefer.set('dataSaver', store.s.dataSaver); prefer.commit('dataSaver', store.s.dataSaver);
prefer.set('enableSeasonalScreenEffect', store.s.enableSeasonalScreenEffect); prefer.commit('enableSeasonalScreenEffect', store.s.enableSeasonalScreenEffect);
prefer.set('enableHorizontalSwipe', store.s.enableHorizontalSwipe); prefer.commit('enableHorizontalSwipe', store.s.enableHorizontalSwipe);
prefer.set('useNativeUiForVideoAudioPlayer', store.s.useNativeUIForVideoAudioPlayer); prefer.commit('useNativeUiForVideoAudioPlayer', store.s.useNativeUIForVideoAudioPlayer);
prefer.set('keepOriginalFilename', store.s.keepOriginalFilename); prefer.commit('keepOriginalFilename', store.s.keepOriginalFilename);
prefer.set('alwaysConfirmFollow', store.s.alwaysConfirmFollow); prefer.commit('alwaysConfirmFollow', store.s.alwaysConfirmFollow);
prefer.set('confirmWhenRevealingSensitiveMedia', store.s.confirmWhenRevealingSensitiveMedia); prefer.commit('confirmWhenRevealingSensitiveMedia', store.s.confirmWhenRevealingSensitiveMedia);
prefer.set('contextMenu', store.s.contextMenu); prefer.commit('contextMenu', store.s.contextMenu);
prefer.set('skipNoteRender', store.s.skipNoteRender); prefer.commit('skipNoteRender', store.s.skipNoteRender);
prefer.set('showSoftWordMutedWord', store.s.showSoftWordMutedWord); prefer.commit('showSoftWordMutedWord', store.s.showSoftWordMutedWord);
prefer.set('confirmOnReact', store.s.confirmOnReact); prefer.commit('confirmOnReact', store.s.confirmOnReact);
prefer.set('sound.masterVolume', store.s.sound_masterVolume); prefer.commit('sound.masterVolume', store.s.sound_masterVolume);
prefer.set('sound.notUseSound', store.s.sound_notUseSound); prefer.commit('sound.notUseSound', store.s.sound_notUseSound);
prefer.set('sound.useSoundOnlyWhenActive', store.s.sound_useSoundOnlyWhenActive); prefer.commit('sound.useSoundOnlyWhenActive', store.s.sound_useSoundOnlyWhenActive);
prefer.set('sound.on.note', store.s.sound_note as any); prefer.commit('sound.on.note', store.s.sound_note as any);
prefer.set('sound.on.noteMy', store.s.sound_noteMy as any); prefer.commit('sound.on.noteMy', store.s.sound_noteMy as any);
prefer.set('sound.on.notification', store.s.sound_notification as any); prefer.commit('sound.on.notification', store.s.sound_notification as any);
prefer.set('sound.on.reaction', store.s.sound_reaction as any); prefer.commit('sound.on.reaction', store.s.sound_reaction as any);
store.set('deck.profile', deckStore.state.profile); store.set('deck.profile', deckStore.state.profile);
store.set('deck.columns', deckStore.state.columns); store.set('deck.columns', deckStore.state.columns);
store.set('deck.layout', deckStore.state.layout); store.set('deck.layout', deckStore.state.layout);

View File

@ -245,7 +245,7 @@ function deleteFolder() {
folderId: props.folder.id, folderId: props.folder.id,
}).then(() => { }).then(() => {
if (prefer.s.uploadFolder === props.folder.id) { if (prefer.s.uploadFolder === props.folder.id) {
prefer.set('uploadFolder', null); prefer.commit('uploadFolder', null);
} }
}).catch(err => { }).catch(err => {
switch (err.id) { switch (err.id) {
@ -266,7 +266,7 @@ function deleteFolder() {
} }
function setAsUploadFolder() { function setAsUploadFolder() {
prefer.set('uploadFolder', props.folder.id); prefer.commit('uploadFolder', props.folder.id);
} }
function onContextmenu(ev: MouseEvent) { function onContextmenu(ev: MouseEvent) {

View File

@ -179,7 +179,7 @@ const useCw = ref<boolean>(!!props.initialCw);
const showPreview = ref(store.s.showPreview); const showPreview = ref(store.s.showPreview);
watch(showPreview, () => store.set('showPreview', showPreview.value)); watch(showPreview, () => store.set('showPreview', showPreview.value));
const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction); const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction);
watch(showAddMfmFunction, () => prefer.set('enableQuickAddMfmFunction', showAddMfmFunction.value)); watch(showAddMfmFunction, () => prefer.commit('enableQuickAddMfmFunction', showAddMfmFunction.value));
const cw = ref<string | null>(props.initialCw ?? null); const cw = ref<string | null>(props.initialCw ?? null);
const localOnly = ref(props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.s.localOnly : prefer.s.defaultNoteLocalOnly)); 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)); const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.s.visibility : prefer.s.defaultNoteVisibility));

View File

@ -858,7 +858,7 @@ function updateSettings<
>(key: K, value: V) { >(key: K, value: V) {
const changes: { [P in K]?: V } = {}; const changes: { [P in K]?: V } = {};
changes[key] = value; changes[key] = value;
prefer.set('game.dropAndFusion', { prefer.commit('game.dropAndFusion', {
...prefer.s['game.dropAndFusion'], ...prefer.s['game.dropAndFusion'],
...changes, ...changes,
}); });

View File

@ -144,7 +144,7 @@ if (prefer.s.uploadFolder) {
function chooseUploadFolder() { function chooseUploadFolder() {
os.selectDriveFolder(false).then(async folder => { 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(); os.success();
if (prefer.s.uploadFolder) { if (prefer.s.uploadFolder) {
uploadFolder.value = await misskeyApi('drive/folders/show', { uploadFolder.value = await misskeyApi('drive/folders/show', {

View File

@ -91,7 +91,7 @@ function removeItem(index: number) {
} }
async function save() { 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 }); await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true });
} }

View File

@ -488,11 +488,11 @@ async function setPinnedList() {
if (canceled) return; if (canceled) return;
if (list == null) return; if (list == null) return;
prefer.set('pinnedUserLists', [list]); prefer.commit('pinnedUserLists', [list]);
} }
function removePinnedList() { function removePinnedList() {
prefer.set('pinnedUserLists', []); prefer.commit('pinnedUserLists', []);
} }
function enableAllDataSaver() { function enableAllDataSaver() {
@ -512,7 +512,7 @@ function disableAllDataSaver() {
} }
watch(dataSaver, (to) => { watch(dataSaver, (to) => {
prefer.set('dataSaver', to); prefer.commit('dataSaver', to);
}, { }, {
deep: true, deep: true,
}); });

View File

@ -101,14 +101,14 @@ async function updated(type: keyof typeof sounds.value, sound) {
volume: sound.volume, volume: sound.volume,
}; };
prefer.set(`sound.on.${type}`, v); prefer.commit(`sound.on.${type}`, v);
sounds.value[type] = v; sounds.value[type] = v;
} }
function reset() { function reset() {
for (const sound of Object.keys(sounds.value) as Array<keyof typeof sounds.value>) { for (const sound of Object.keys(sounds.value) as Array<keyof typeof sounds.value>) {
const v = PREF_DEF[`sound.on.${sound}`].default; const v = PREF_DEF[`sound.on.${sound}`].default;
prefer.set(`sound.on.${sound}`, v); prefer.commit(`sound.on.${sound}`, v);
sounds.value[sound] = v; sounds.value[sound] = v;
} }
} }

View File

@ -137,10 +137,10 @@ async function save() {
const i = prefer.s.statusbars.findIndex(x => x.id === props._id); const i = prefer.s.statusbars.findIndex(x => x.id === props._id);
const statusbars = deepClone(prefer.s.statusbars); const statusbars = deepClone(prefer.s.statusbars);
statusbars[i] = deepClone(statusbar); statusbars[i] = deepClone(statusbar);
prefer.set('statusbars', statusbars); prefer.commit('statusbars', statusbars);
} }
function del() { 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));
} }
</script> </script>

View File

@ -37,7 +37,7 @@ onMounted(() => {
}); });
async function add() { async function add() {
prefer.set('statusbars', [...statusbars.value, { prefer.commit('statusbars', [...statusbars.value, {
id: uuid(), id: uuid(),
type: null, type: null,
black: false, black: false,

View File

@ -179,7 +179,7 @@ const darkThemeId = computed({
set(id) { set(id) {
const t = themes.value.find(x => x.id === id); const t = themes.value.find(x => x.id === id);
if (t) { // themes undefined if (t) { // themes undefined
prefer.set('darkTheme', t); prefer.commit('darkTheme', t);
} }
}, },
}); });
@ -191,7 +191,7 @@ const lightThemeId = computed({
set(id) { set(id) {
const t = themes.value.find(x => x.id === id); const t = themes.value.find(x => x.id === id);
if (t) { // themes undefined if (t) { // themes undefined
prefer.set('lightTheme', t); prefer.commit('lightTheme', t);
} }
}, },
}); });

View File

@ -201,9 +201,9 @@ async function saveAs() {
await addTheme(theme.value); await addTheme(theme.value);
applyTheme(theme.value); applyTheme(theme.value);
if (store.s.darkMode) { if (store.s.darkMode) {
prefer.set('darkTheme', theme.value); prefer.commit('darkTheme', theme.value);
} else { } else {
prefer.set('lightTheme', theme.value); prefer.commit('lightTheme', theme.value);
} }
changed.value = false; changed.value = false;
os.alert({ os.alert({

View File

@ -145,7 +145,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) {
src: code, src: code,
}; };
prefer.set('plugins', prefer.s.plugins.concat(plugin)); prefer.commit('plugins', prefer.s.plugins.concat(plugin));
await authorizePlugin(plugin); await authorizePlugin(plugin);
@ -154,7 +154,7 @@ export async function installPlugin(code: string, meta?: AiScriptPluginMeta) {
export async function uninstallPlugin(plugin: Plugin) { export async function uninstallPlugin(plugin: Plugin) {
abortPlugin(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)) { if (Object.hasOwn(store.s.pluginTokens, plugin.installId)) {
await os.apiWithDialog('i/revoke-token', { await os.apiWithDialog('i/revoke-token', {
token: store.s.pluginTokens[plugin.installId], 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); const { canceled, result } = await os.form(plugin.name, config);
if (canceled) return; 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); reloadPlugin(plugin);
} }
export function changePluginActive(plugin: Plugin, active: boolean) { 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) { if (active) {
launchPlugin(plugin.installId); launchPlugin(plugin.installId);

View File

@ -222,7 +222,7 @@ export class ProfileManager extends EventEmitter<{
text: i18n.ts.resetToDefaultValue, text: i18n.ts.resetToDefaultValue,
danger: true, danger: true,
action: () => { action: () => {
this.store.set(key, PREF_DEF[key].default); this.store.commit(key, PREF_DEF[key].default);
}, },
}, { }, {
type: 'divider', type: 'divider',

View File

@ -44,7 +44,7 @@ export class Store<Data extends Record<string, any>> extends EventEmitter<StoreE
} }
} }
public set<K extends keyof Data>(key: K, value: Data[K]) { public commit<K extends keyof Data>(key: K, value: Data[K]) {
this.r[key].value = this.s[key] = value; this.r[key].value = this.s[key] = value;
this.emit('updated', { key, value }); this.emit('updated', { key, value });
} }
@ -84,7 +84,7 @@ export class Store<Data extends Record<string, any>> extends EventEmitter<StoreE
}, },
set: (value) => { set: (value) => {
const val = setter ? setter(value) : value; const val = setter ? setter(value) : value;
this.set(key, val); this.commit(key, val);
valueRef.value = val; valueRef.value = val;
}, },
}); });

View File

@ -23,11 +23,11 @@ export async function addTheme(theme: Theme): Promise<void> {
if (themes.some(t => t.id === theme.id)) { if (themes.some(t => t.id === theme.id)) {
throw new Error('already exists'); throw new Error('already exists');
} }
prefer.set('themes', [...themes, theme]); prefer.commit('themes', [...themes, theme]);
} }
export async function removeTheme(theme: Theme): Promise<void> { export async function removeTheme(theme: Theme): Promise<void> {
if ($i == null) return; if ($i == null) return;
const themes = getThemes().filter(t => t.id !== theme.id); const themes = getThemes().filter(t => t.id !== theme.id);
prefer.set('themes', themes); prefer.commit('themes', themes);
} }

View File

@ -144,7 +144,7 @@ if (window.innerWidth < 1024) {
document.documentElement.style.overflowY = 'scroll'; document.documentElement.style.overflowY = 'scroll';
if (prefer.s.widgets.length === 0) { if (prefer.s.widgets.length === 0) {
prefer.set('widgets', [{ prefer.commit('widgets', [{
name: 'calendar', name: 'calendar',
id: 'a', place: null, data: {}, id: 'a', place: null, data: {},
}, { }, {

View File

@ -178,7 +178,7 @@ if (window.innerWidth > 1024) {
} }
if (prefer.s.widgets.length === 0) { if (prefer.s.widgets.length === 0) {
prefer.set('widgets', [{ prefer.commit('widgets', [{
name: 'calendar', name: 'calendar',
id: 'a', place: 'right', data: {}, id: 'a', place: 'right', data: {},
}, { }, {

View File

@ -37,18 +37,18 @@ const widgets = computed(() => {
}); });
function addWidget(widget) { function addWidget(widget) {
prefer.set('widgets', [{ prefer.commit('widgets', [{
...widget, ...widget,
place: props.place, place: props.place,
}, ...prefer.s.widgets]); }, ...prefer.s.widgets]);
} }
function removeWidget(widget) { 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 }) { 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, ...w,
data, data,
place: props.place, place: props.place,
@ -57,17 +57,17 @@ function updateWidget({ id, data }) {
function updateWidgets(thisWidgets) { function updateWidgets(thisWidgets) {
if (props.place === null) { if (props.place === null) {
prefer.set('widgets', thisWidgets); prefer.commit('widgets', thisWidgets);
return; return;
} }
if (props.place === 'left') { if (props.place === 'left') {
prefer.set('widgets', [ prefer.commit('widgets', [
...thisWidgets.map(w => ({ ...w, place: 'left' })), ...thisWidgets.map(w => ({ ...w, place: 'left' })),
...prefer.s.widgets.filter(w => w.place !== 'left' && !thisWidgets.some(t => w.id === t.id)), ...prefer.s.widgets.filter(w => w.place !== 'left' && !thisWidgets.some(t => w.id === t.id)),
]); ]);
return; return;
} }
prefer.set('widgets', [ prefer.commit('widgets', [
...prefer.s.widgets.filter(w => w.place === 'left' && !thisWidgets.some(t => w.id === t.id)), ...prefer.s.widgets.filter(w => w.place === 'left' && !thisWidgets.some(t => w.id === t.id)),
...thisWidgets.map(w => ({ ...w, place: 'right' })), ...thisWidgets.map(w => ({ ...w, place: 'right' })),
]); ]);