summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-09-18 19:18:31 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-09-18 19:18:31 +0900
commit5fe08d0bbb7bb58234ec70e55289acfff8da0b8b (patch)
treeb43b7f977f1ba978cd02b15c63ead650f2fb19ee
parentenhance(frontend): マスクエフェクト (#16556) (diff)
downloadmisskey-5fe08d0bbb7bb58234ec70e55289acfff8da0b8b.tar.gz
misskey-5fe08d0bbb7bb58234ec70e55289acfff8da0b8b.tar.bz2
misskey-5fe08d0bbb7bb58234ec70e55289acfff8da0b8b.zip
fix(frontend): iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正
Fix #16562
-rw-r--r--CHANGELOG.md1
-rw-r--r--packages/frontend/src/boot/common.ts26
2 files changed, 15 insertions, 12 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ea1fd23efb..adeb453795 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@
- Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました
- Enhance: 画像編集にマスクエフェクトを追加
- Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上
+- Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正
### Server
-
diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts
index 574012ff78..4becf32ab5 100644
--- a/packages/frontend/src/boot/common.ts
+++ b/packages/frontend/src/boot/common.ts
@@ -151,7 +151,21 @@ export async function common(createVue: () => Promise<App<Element>>) {
}
//#endregion
+ //#region Sync dark mode
+ if (prefer.s.syncDeviceDarkMode) {
+ store.set('darkMode', isDeviceDarkmode());
+ }
+
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (mql) => {
+ if (prefer.s.syncDeviceDarkMode) {
+ store.set('darkMode', mql.matches);
+ }
+ });
+ //#endregion
+
// NOTE: この処理は必ずクライアント更新チェック処理より後に来ること(テーマ再構築のため)
+ // NOTE: この処理は必ずダークモード判定処理より後に来ること(初回のテーマ適用のため)
+ // see: https://github.com/misskey-dev/misskey/issues/16562
watch(store.r.darkMode, (darkMode) => {
const theme = (() => {
if (darkMode) {
@@ -183,18 +197,6 @@ export async function common(createVue: () => Promise<App<Element>>) {
});
}
- //#region Sync dark mode
- if (prefer.s.syncDeviceDarkMode) {
- store.set('darkMode', isDeviceDarkmode());
- }
-
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (mql) => {
- if (prefer.s.syncDeviceDarkMode) {
- store.set('darkMode', mql.matches);
- }
- });
- //#endregion
-
if (!isSafeMode) {
if (prefer.s.darkTheme && store.s.darkMode) {
if (miLocalStorage.getItem('themeId') !== prefer.s.darkTheme.id) applyTheme(prefer.s.darkTheme);