Jacky Zhao
2023-06-18 c4cf0dcb022ff826433b63b8ff68830bb8503895
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const userPref = window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'
const currentTheme = localStorage.getItem('theme') ?? userPref
document.documentElement.setAttribute('saved-theme', currentTheme)
 
window.addEventListener('DOMContentLoaded', () => {
  const switchTheme = (e: any) => {
    if (e.target.checked) {
      document.documentElement.setAttribute('saved-theme', 'dark')
      localStorage.setItem('theme', 'dark')
    }
    else {
      document.documentElement.setAttribute('saved-theme', 'light')
      localStorage.setItem('theme', 'light')
    }
  }
 
  // Darkmode toggle
  const toggleSwitch = document.querySelector('#darkmode-toggle') as HTMLInputElement
  toggleSwitch.addEventListener('change', switchTheme, false)
  if (currentTheme === 'dark') {
    toggleSwitch.checked = true
  }
})