summaryrefslogtreecommitdiff
path: root/packages/frontend/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/boot')
-rw-r--r--packages/frontend/src/boot/common.ts26
1 files changed, 14 insertions, 12 deletions
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);