From 97a667e422ea2336d5e4722fac9cc8a8ab9900f6 Mon Sep 17 00:00:00 2001 From: Kissa Ruokanen Date: Tue, 2 Jun 2026 17:57:47 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=8CD=E3=80=8D=E3=82=AD=E3=83=BC?= =?UTF-8?q?=E3=81=A7=E3=83=A2=E3=83=BC=E3=83=89=E3=82=92=E5=88=87=E3=82=8A?= =?UTF-8?q?=E6=9B=BF=E3=81=88=E3=82=8B=E3=81=A8=E3=81=8D=E3=81=AB`syncDevi?= =?UTF-8?q?ceDarkMode`=E3=81=AE=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=92=E8=A1=8C=E3=81=86=E3=82=88=E3=81=86=E3=81=AB=E3=81=99?= =?UTF-8?q?=E3=82=8B=20(#17526)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(frontend): Dキーショートカットでダークモード切り替え時にsyncDeviceDarkModeのチェックを行うように修正 設定ページのトグルではsyncDeviceDarkModeが有効な場合に確認ダイアログを表示し、 同意後にsyncDeviceDarkModeを無効化してからダークモードを切り替える挙動だったが、 Dキーショートカットではこのチェックがバイパスされていた。 ショートカットキー経由でも同じロジックを適用するように修正。 * fix(frontend): CHANGELOGにDキーのsyncDeviceDarkModeバイパス修正を追記 --- CHANGELOG.md | 1 + packages/frontend/src/boot/main-boot.ts | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b9957b1fd..d816a00c81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Fix: アクセストークン発行時のダイアログのタイトルが「確認コード」となっているのを修正 - Fix: 一部のUI要素の色が正しく表示されない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1243) +- Fix: 「D」キーでダークモードを切り替える際にsyncDeviceDarkModeのチェックがバイパスされる問題を修正 ### Server - Enhance: リモートノートクリーニングジョブのスキップ処理のパフォーマンス改善 diff --git a/packages/frontend/src/boot/main-boot.ts b/packages/frontend/src/boot/main-boot.ts index 3d4ecbf75b..a1dc7ac006 100644 --- a/packages/frontend/src/boot/main-boot.ts +++ b/packages/frontend/src/boot/main-boot.ts @@ -380,8 +380,20 @@ export async function mainBoot() { if ($i == null) return; post(); }, - 'd': () => { - store.set('darkMode', !store.s.darkMode); + 'd': async () => { + const value = !store.s.darkMode; + if (prefer.s.syncDeviceDarkMode) { + const { canceled } = await confirm({ + type: 'question', + text: i18n.tsx.switchDarkModeManuallyWhenSyncEnabledConfirm({ x: i18n.ts.syncDeviceDarkMode }), + }); + if (canceled) return; + + prefer.commit('syncDeviceDarkMode', false); + store.set('darkMode', value); + } else { + store.set('darkMode', value); + } }, 's': () => { mainRouter.push('/search');