feat: support non-singleton darkmode

This commit is contained in:
Jacky Zhao
2025-03-10 11:44:47 -07:00
parent 23df17233d
commit dcaf806190
3 changed files with 12 additions and 15 deletions

View File

@ -25,12 +25,11 @@ document.addEventListener("nav", () => {
emitThemeChangeEvent(newTheme)
}
// Darkmode toggle
const themeButton = document.querySelector("#darkmode") as HTMLButtonElement
if (themeButton) {
themeButton.addEventListener("click", switchTheme)
window.addCleanup(() => themeButton.removeEventListener("click", switchTheme))
for (const darkmodeButton of document.getElementsByClassName("darkmode")) {
darkmodeButton.addEventListener("click", switchTheme)
window.addCleanup(() => darkmodeButton.removeEventListener("click", switchTheme))
}
// Listen for changes in prefers-color-scheme
const colorSchemeMediaQuery = window.matchMedia("(prefers-color-scheme: dark)")
colorSchemeMediaQuery.addEventListener("change", themeChange)