diff --git a/locales/index.d.ts b/locales/index.d.ts index afaa2d975d..c157cb2a1f 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5382,6 +5382,10 @@ export interface Locale extends ILocale { * 埋め込み */ "embed": string; + /** + * 設定を移行しています。しばらくお待ちください... (後ほど、設定→その他→旧設定情報を移行 で手動で移行することもできます) + */ + "settingsMigrating": string; "_chat": { /** * まだメッセージはありません diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 323dc3a38a..b0084dc440 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1341,6 +1341,7 @@ right: "右" bottom: "下" top: "上" embed: "埋め込み" +settingsMigrating: "設定を移行しています。しばらくお待ちください... (後ほど、設定→その他→旧設定情報を移行 で手動で移行することもできます)" _chat: noMessagesYet: "まだメッセージはありません" diff --git a/packages/frontend/src/components/MkWaitingDialog.vue b/packages/frontend/src/components/MkWaitingDialog.vue index 282da00ee1..820cf05e1f 100644 --- a/packages/frontend/src/components/MkWaitingDialog.vue +++ b/packages/frontend/src/components/MkWaitingDialog.vue @@ -22,7 +22,7 @@ const modal = useTemplateRef('modal'); const props = defineProps<{ success: boolean; showing: boolean; - text?: string; + text?: string | null; }>(); const emit = defineEmits<{ diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts index 63298d9407..813b49635d 100644 --- a/packages/frontend/src/os.ts +++ b/packages/frontend/src/os.ts @@ -547,12 +547,13 @@ export function success(): Promise { }); } -export function waiting(): Promise { +export function waiting(text?: string | null): Promise { return new Promise(resolve => { const showing = ref(true); const { dispose } = popup(MkWaitingDialog, { success: false, showing: showing, + text, }, { done: () => resolve(), closed: () => dispose(), diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue index 6736572e0b..58fcb0c5e0 100644 --- a/packages/frontend/src/pages/settings/other.vue +++ b/packages/frontend/src/pages/settings/other.vue @@ -185,7 +185,6 @@ async function deleteAccount() { } function migrate() { - os.waiting(); migrateOldSettings(); } diff --git a/packages/frontend/src/pref-migrate.ts b/packages/frontend/src/pref-migrate.ts index cb5e817f0e..414bb9c5aa 100644 --- a/packages/frontend/src/pref-migrate.ts +++ b/packages/frontend/src/pref-migrate.ts @@ -10,14 +10,19 @@ import { prefer } from '@/preferences.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { deckStore } from '@/ui/deck/deck-store.js'; import { unisonReload } from '@/utility/unison-reload.js'; +import * as os from '@/os.js'; +import { i18n } from '@/i18n.js'; // TODO: そのうち消す export function migrateOldSettings() { + os.waiting(i18n.ts.settingsMigrating); + store.loaded.then(async () => { - const themes = await misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []); - if (themes.length > 0) { - prefer.commit('themes', themes); - } + misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []).then((themes: any) => { + if (themes.length > 0) { + prefer.commit('themes', themes); + } + }); const plugins = ColdDeviceStorage.get('plugins'); prefer.commit('plugins', plugins.map(p => ({ @@ -136,6 +141,6 @@ export function migrateOldSettings() { window.setTimeout(() => { unisonReload(); - }, 5000); + }, 10000); }); }