From 0ad15ff1a6ba96e271d2aeb3dd31e5304827e7a6 Mon Sep 17 00:00:00 2001 From: zyronon Date: Mon, 28 Aug 2023 18:47:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E8=83=8C=E8=AF=8D=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 7 +++ src/App.vue | 16 +++---- src/components/Modal/Statistics.vue | 45 ++++++++++++++---- src/components/Side.vue | 41 +++++++++++------ src/components/Toolbar/Toolbar.vue | 14 +++--- src/components/Type.vue | 71 +++++++++++++++++++++-------- src/stores/base.ts | 21 ++++++--- src/types.ts | 3 +- src/utils/eventBus.ts | 8 ++++ 10 files changed, 158 insertions(+), 69 deletions(-) create mode 100644 src/utils/eventBus.ts diff --git a/package.json b/package.json index 9cbbc03a..a40c3d5f 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "hover.css": "^2.3.2", "localforage": "^1.10.0", "lodash": "^4.17.21", + "mitt": "^3.0.1", "pinia": "^2.1.6", "swiper": "^10.1.0", "tesseract.js": "^4.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 122b458a..1eeb7494 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ dependencies: lodash: specifier: ^4.17.21 version: 4.17.21 + mitt: + specifier: ^3.0.1 + version: 3.0.1 pinia: specifier: ^2.1.6 version: 2.1.6(typescript@5.0.2)(vue@3.3.4) @@ -1346,6 +1349,10 @@ packages: brace-expansion: 2.0.1 dev: true + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true diff --git a/src/App.vue b/src/App.vue index e0e6fe83..b49ed451 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,22 +15,20 @@ const match: MediaQueryList = window.matchMedia("(prefers-color-scheme: dark)") match.addEventListener('change', followSystem) function followSystem() { - if (store.theme === 'auto') { - const theme = match.matches ? 'dark' : 'light' - document.documentElement.setAttribute('data-theme', theme) - // document.documentElement.setAttribute('data-theme', 'dark') - localStorage.setItem('appearance', theme) - } + const theme = match.matches ? 'dark' : 'light' + document.documentElement.setAttribute('data-theme', theme) } onMounted(() => { store.init() - followSystem() + if (store.theme !== 'auto') { + document.documentElement.setAttribute('data-theme', store.theme) + } })