Skip to content

Commit

Permalink
refactor(frontend): rename store.set -> store.commit
Browse files Browse the repository at this point in the history
  • Loading branch information
syuilo committed Mar 10, 2025
1 parent 08f7e7d commit b200743
Show file tree
Hide file tree
Showing 20 changed files with 113 additions and 113 deletions.
4 changes: 2 additions & 2 deletions packages/frontend/src/boot/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down
152 changes: 76 additions & 76 deletions packages/frontend/src/boot/main-boot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/components/MkDrive.folder.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -266,7 +266,7 @@ function deleteFolder() {
}

function setAsUploadFolder() {
prefer.set('uploadFolder', props.folder.id);
prefer.commit('uploadFolder', props.folder.id);
}

function onContextmenu(ev: MouseEvent) {
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/components/MkPostForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/pages/drop-and-fusion.game.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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,
});
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/pages/settings/drive.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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', {
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/pages/settings/navbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
}

Expand Down
6 changes: 3 additions & 3 deletions packages/frontend/src/pages/settings/preferences.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -512,7 +512,7 @@ function disableAllDataSaver() {
}

watch(dataSaver, (to) => {
prefer.set('dataSaver', to);
prefer.commit('dataSaver', to);
}, {
deep: true,
});
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/pages/settings/sounds.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/pages/settings/statusbar.statusbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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>
2 changes: 1 addition & 1 deletion packages/frontend/src/pages/settings/statusbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ onMounted(() => {
});

async function add() {
prefer.set('statusbars', [...statusbars.value, {
prefer.commit('statusbars', [...statusbars.value, {
id: uuid(),
type: null,
black: false,
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/pages/settings/theme.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
},
});
Expand All @@ -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);
}
},
});
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/pages/theme-editor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down
8 changes: 4 additions & 4 deletions packages/frontend/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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],
Expand Down Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/preferences/profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/preferences/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
}
Expand Down Expand Up @@ -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;
},
});
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/theme-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Loading

0 comments on commit b200743

Please sign in to comment.