refactor(frontend): rename store.set -> store.commit
This commit is contained in:
parent
08f7e7d9b3
commit
b200743845
|
@ -198,8 +198,8 @@ export async function common(createVue: () => App<Element>) {
|
|||
|
||||
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) => {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -179,7 +179,7 @@ const useCw = ref<boolean>(!!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<string | null>(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));
|
||||
|
|
|
@ -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,
|
||||
});
|
||||
|
|
|
@ -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', {
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
});
|
||||
|
|
|
@ -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<keyof typeof sounds.value>) {
|
||||
const v = PREF_DEF[`sound.on.${sound}`].default;
|
||||
prefer.set(`sound.on.${sound}`, v);
|
||||
prefer.commit(`sound.on.${sound}`, v);
|
||||
sounds.value[sound] = v;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -37,7 +37,7 @@ onMounted(() => {
|
|||
});
|
||||
|
||||
async function add() {
|
||||
prefer.set('statusbars', [...statusbars.value, {
|
||||
prefer.commit('statusbars', [...statusbars.value, {
|
||||
id: uuid(),
|
||||
type: null,
|
||||
black: false,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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.emit('updated', { key, value });
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ export class Store<Data extends Record<string, any>> extends EventEmitter<StoreE
|
|||
},
|
||||
set: (value) => {
|
||||
const val = setter ? setter(value) : value;
|
||||
this.set(key, val);
|
||||
this.commit(key, val);
|
||||
valueRef.value = val;
|
||||
},
|
||||
});
|
||||
|
|
|
@ -23,11 +23,11 @@ export async function addTheme(theme: Theme): Promise<void> {
|
|||
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<void> {
|
||||
if ($i == null) return;
|
||||
const themes = getThemes().filter(t => t.id !== theme.id);
|
||||
prefer.set('themes', themes);
|
||||
prefer.commit('themes', themes);
|
||||
}
|
||||
|
|
|
@ -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: {},
|
||||
}, {
|
||||
|
|
|
@ -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: {},
|
||||
}, {
|
||||
|
|
|
@ -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' })),
|
||||
]);
|
||||
|
|
Loading…
Reference in New Issue