From 1ae1299f44deb7e5c1ef74838dccb2a4fe161616 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 13 Apr 2025 14:01:43 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix(frontend):=20=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E5=91=A8=E3=82=8A=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/boot/main-boot.ts | 3 ++- packages/frontend/src/pref-migrate.ts | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index fad6ce3825..f477622d6d 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -29,7 +29,6 @@ import { prefer } from '@/preferences.js'; import { launchPlugins } from '@/plugin.js'; import { updateCurrentAccountPartial } from '@/accounts.js'; import { signout } from '@/signout.js'; -import { migrateOldSettings } from '@/pref-migrate.js'; export async function mainBoot() { const { isClientUpdated, lastVersion } = await common(async () => { @@ -75,6 +74,8 @@ export async function mainBoot() { if (lastVersion && (compareVersions('2025.3.2-alpha.0', lastVersion) === 1)) { console.log('Preferences migration'); + const { migrateOldSettings } = await import('@/pref-migrate.js'); + migrateOldSettings(); } } diff --git a/packages/frontend/src/pref-migrate.ts b/packages/frontend/src/pref-migrate.ts index 414bb9c5aa..0f46594ab6 100644 --- a/packages/frontend/src/pref-migrate.ts +++ b/packages/frontend/src/pref-migrate.ts @@ -14,15 +14,17 @@ import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; // TODO: そのうち消す -export function migrateOldSettings() { +export async function migrateOldSettings() { os.waiting(i18n.ts.settingsMigrating); - store.loaded.then(async () => { - misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []).then((themes: any) => { + await store.loaded.then(async () => { + const migrationPromises: Promise[] = []; + + migrationPromises.push(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 => ({ @@ -32,7 +34,7 @@ export function migrateOldSettings() { }))); prefer.commit('deck.profile', deckStore.s.profile); - misskeyApi('i/registry/keys', { + migrationPromises.push(misskeyApi('i/registry/keys', { scope: ['client', 'deck', 'profiles'], }).then(async keys => { const profiles: DeckProfile[] = []; @@ -49,7 +51,7 @@ export function migrateOldSettings() { }); } prefer.commit('deck.profiles', profiles); - }); + })); prefer.commit('lightTheme', ColdDeviceStorage.get('lightTheme')); prefer.commit('darkTheme', ColdDeviceStorage.get('darkTheme')); @@ -139,8 +141,8 @@ export function migrateOldSettings() { prefer.commit('defaultNoteVisibility', store.s.defaultNoteVisibility); prefer.commit('defaultNoteLocalOnly', store.s.defaultNoteLocalOnly); - window.setTimeout(() => { - unisonReload(); - }, 10000); + await Promise.all(migrationPromises); }); + + unisonReload(); } From 3472f7f1667acf76372295f857d18644605f163f Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 13 Apr 2025 14:13:09 +0900 Subject: [PATCH 2/3] Update Changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f256aec5c..e49affc473 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ - ### Client -- +- Fix: 設定データの移行を高速化 +- Fix: 設定データの移行が完了しているクライアントでは、設定データ移行用のプログラムが読み込まれないように(軽量化) ### Server - From 1bc68421e6ff4360f8c52e1dd432572b031f84b0 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Fri, 22 Aug 2025 18:58:21 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=9C=80=E4=BD=8E5=E7=A7=92?= =?UTF-8?q?=E3=81=AF=E5=BE=85=E3=81=A4=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/pref-migrate.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/pref-migrate.ts b/packages/frontend/src/pref-migrate.ts index dd9b63ca7a..0ae9a88f05 100644 --- a/packages/frontend/src/pref-migrate.ts +++ b/packages/frontend/src/pref-migrate.ts @@ -17,7 +17,13 @@ import { i18n } from '@/i18n.js'; export async function migrateOldSettings() { os.waiting({ text: i18n.ts.settingsMigrating }); - await store.loaded.then(async () => { + const minWait = new Promise(resolve => { + window.setTimeout(() => { + resolve(); + }, 5000); + }); + + const migratePromise = store.loaded.then(async () => { const migrationPromises: Promise[] = []; migrationPromises.push(misskeyApi('i/registry/get', { scope: ['client'], key: 'themes' }).catch(() => []).then((themes: any) => { @@ -142,5 +148,8 @@ export async function migrateOldSettings() { await Promise.all(migrationPromises); }); + // 最低5秒 or 設定移行が完了するまで待つ + await Promise.all([migratePromise, minWait]); + unisonReload(); }