summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-11-26 19:26:27 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-11-26 19:26:27 +0900
commitde7cbb376e8907c93d2792c7fa5b9b032b734aa2 (patch)
treebe9978cf18dbc7b7ebd8de640d8cb4a6fdb088f1 /packages/frontend/src
parentclean up (diff)
downloadmisskey-de7cbb376e8907c93d2792c7fa5b9b032b734aa2.tar.gz
misskey-de7cbb376e8907c93d2792c7fa5b9b032b734aa2.tar.bz2
misskey-de7cbb376e8907c93d2792c7fa5b9b032b734aa2.zip
fix(frontend): 初回読み込み時にエラーになることがある問題を修正
Fix #16562
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/boot/common.ts13
-rw-r--r--packages/frontend/src/theme.ts2
2 files changed, 9 insertions, 6 deletions
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<App<Element>>) {
});
//#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<App<Element>>) {
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_');