From d4e76e0b0bdeae280cc5bf8189a6648846130ad4 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 2 Mar 2025 00:07:39 +0800 Subject: [PATCH] fix(theme): page should be in light mode while printing, close #502 (#503) --- theme/src/client/composables/dark-mode.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/theme/src/client/composables/dark-mode.ts b/theme/src/client/composables/dark-mode.ts index ffa85541..f2c122e9 100644 --- a/theme/src/client/composables/dark-mode.ts +++ b/theme/src/client/composables/dark-mode.ts @@ -1,5 +1,5 @@ import type { App, InjectionKey, Ref } from 'vue' -import { useDark } from '@vueuse/core' +import { useDark, useEventListener } from '@vueuse/core' import { inject, ref } from 'vue' import { useThemeData } from './theme-data.js' @@ -50,6 +50,16 @@ export function setupDarkMode(app: App): void { Object.defineProperty(app.config.globalProperties, '$isDark', { get: () => isDark, }) + + useEventListener('beforeprint', () => { + if (isDark.value) + document.documentElement.dataset.theme = 'light' + }) + + useEventListener('afterprint', () => { + if (isDark.value) + document.documentElement.dataset.theme = 'dark' + }) } /**