enhance(frontend): improve accounts management

This commit is contained in:
syuilo
2025-03-13 22:12:23 +09:00
parent 44073736de
commit 8c9ec5827f
137 changed files with 640 additions and 622 deletions

View File

@@ -15,7 +15,7 @@ import components from '@/components/index.js';
import { applyTheme } from '@/theme.js';
import { isDeviceDarkmode } from '@/utility/is-device-darkmode.js';
import { updateI18n, i18n } from '@/i18n.js';
import { $i, refreshAccount, login } from '@/account.js';
import { refreshCurrentAccount, login } from '@/accounts.js';
import { store } from '@/store.js';
import { fetchInstance, instance } from '@/instance.js';
import { deviceKind, updateDeviceKind } from '@/utility/device-kind.js';
@@ -29,6 +29,7 @@ import { fetchCustomEmojis } from '@/custom-emojis.js';
import { setupRouter } from '@/router/main.js';
import { createMainRouter } from '@/router/definition.js';
import { prefer } from '@/preferences.js';
import { $i } from '@/i.js';
export async function common(createVue: () => App<Element>) {
console.info(`Misskey v${version}`);
@@ -38,11 +39,6 @@ export async function common(createVue: () => App<Element>) {
console.info(`vue ${vueVersion}`);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(window as any).$i = $i;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(window as any).$store = store;
window.addEventListener('error', event => {
console.error(event);
/*
@@ -244,7 +240,7 @@ export async function common(createVue: () => App<Element>) {
console.log('account cache found. refreshing...');
}
refreshAccount();
refreshCurrentAccount();
}
//#endregion

View File

@@ -16,7 +16,7 @@ import { i18n } from '@/i18n.js';
import { alert, confirm, popup, post, toast } from '@/os.js';
import { useStream } from '@/stream.js';
import * as sound from '@/utility/sound.js';
import { $i, signout, updateAccountPartial } from '@/account.js';
import { $i } from '@/i.js';
import { instance } from '@/instance.js';
import { ColdDeviceStorage, store } from '@/store.js';
import { reactionPicker } from '@/utility/reaction-picker.js';
@@ -32,6 +32,8 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { deckStore } from '@/ui/deck/deck-store.js';
import { launchPlugins } from '@/plugin.js';
import { unisonReload } from '@/utility/unison-reload.js';
import { updateCurrentAccountPartial } from '@/accounts.js';
import { signout } from '@/signout.js';
export async function mainBoot() {
const { isClientUpdated, lastVersion } = await common(() => {
@@ -480,11 +482,11 @@ export async function mainBoot() {
// 自分の情報が更新されたとき
main.on('meUpdated', i => {
updateAccountPartial(i);
updateCurrentAccountPartial(i);
});
main.on('readAllNotifications', () => {
updateAccountPartial({
updateCurrentAccountPartial({
hasUnreadNotification: false,
unreadNotificationsCount: 0,
});
@@ -492,39 +494,39 @@ export async function mainBoot() {
main.on('unreadNotification', () => {
const unreadNotificationsCount = ($i?.unreadNotificationsCount ?? 0) + 1;
updateAccountPartial({
updateCurrentAccountPartial({
hasUnreadNotification: true,
unreadNotificationsCount,
});
});
main.on('unreadMention', () => {
updateAccountPartial({ hasUnreadMentions: true });
updateCurrentAccountPartial({ hasUnreadMentions: true });
});
main.on('readAllUnreadMentions', () => {
updateAccountPartial({ hasUnreadMentions: false });
updateCurrentAccountPartial({ hasUnreadMentions: false });
});
main.on('unreadSpecifiedNote', () => {
updateAccountPartial({ hasUnreadSpecifiedNotes: true });
updateCurrentAccountPartial({ hasUnreadSpecifiedNotes: true });
});
main.on('readAllUnreadSpecifiedNotes', () => {
updateAccountPartial({ hasUnreadSpecifiedNotes: false });
updateCurrentAccountPartial({ hasUnreadSpecifiedNotes: false });
});
main.on('readAllAntennas', () => {
updateAccountPartial({ hasUnreadAntenna: false });
updateCurrentAccountPartial({ hasUnreadAntenna: false });
});
main.on('unreadAntenna', () => {
updateAccountPartial({ hasUnreadAntenna: true });
updateCurrentAccountPartial({ hasUnreadAntenna: true });
sound.playMisskeySfx('antenna');
});
main.on('readAllAnnouncements', () => {
updateAccountPartial({ hasUnreadAnnouncement: false });
updateCurrentAccountPartial({ hasUnreadAnnouncement: false });
});
// 個人宛てお知らせが発行されたとき