From de7cbb376e8907c93d2792c7fa5b9b032b734aa2 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:26:27 +0900 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E5=88=9D=E5=9B=9E=E8=AA=AD?= =?UTF-8?q?=E3=81=BF=E8=BE=BC=E3=81=BF=E6=99=82=E3=81=AB=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=81=AB=E3=81=AA=E3=82=8B=E3=81=93=E3=81=A8=E3=81=8C?= =?UTF-8?q?=E3=81=82=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #16562 --- CHANGELOG.md | 1 + packages/frontend/src/boot/common.ts | 13 +++++++------ packages/frontend/src/theme.ts | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29da92c864..616e726940 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 +- Fix: 初回読み込み時にエラーになることがある問題を修正 ### Server - Enhance: `clips/my-favorites` APIがページネーションに対応しました diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts index 355ef01c83..71fd9bb54a 100644 --- a/packages/frontend/src/boot/common.ts +++ b/packages/frontend/src/boot/common.ts @@ -153,8 +153,15 @@ export async function common(createVue: () => Promise>) { }); //#endregion + if (!isSafeMode) { + // TODO: instance.defaultLightTheme/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)); + } + // NOTE: この処理は必ずクライアント更新チェック処理より後に来ること(テーマ再構築のため) // NOTE: この処理は必ずダークモード判定処理より後に来ること(初回のテーマ適用のため) + // NOTE: この処理は必ずサーバーテーマ適用処理より後に来ること(二重applyTheme発火を防ぐため) // see: https://github.com/misskey-dev/misskey/issues/16562 watch(store.r.darkMode, (darkMode) => { const theme = (() => { @@ -185,12 +192,6 @@ export async function common(createVue: () => Promise>) { applyTheme(theme ?? defaultLightTheme); } }); - - fetchInstanceMetaPromise.then(() => { - // TODO: instance.defaultLightTheme/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) => { diff --git a/packages/frontend/src/theme.ts b/packages/frontend/src/theme.ts index 2fca4e79ae..fc3f5f55f2 100644 --- a/packages/frontend/src/theme.ts +++ b/packages/frontend/src/theme.ts @@ -158,6 +158,8 @@ export function applyTheme(theme: Theme, persist = true) { // 様々な理由により startViewTransition は失敗することがある // ref. https://github.com/misskey-dev/misskey/issues/16562 + // FIXME: viewTransitonエラーはtry~catch貫通してそうな気配がする + console.error(err); window.document.documentElement.classList.remove('_themeChanging_');