38 lines
851 B
TypeScript
38 lines
851 B
TypeScript
export const updateTheme = () => {
|
|
if (
|
|
localStorage.theme === 'dark' ||
|
|
(!('theme' in localStorage) &&
|
|
window.matchMedia('(prefers-color-scheme: dark)').matches)
|
|
) {
|
|
document.documentElement.classList.add('dark')
|
|
} else {
|
|
document.documentElement.classList.remove('dark')
|
|
}
|
|
}
|
|
|
|
export const changeTheme = (value: string) => {
|
|
if (value == 'light') {
|
|
localStorage.theme = 'light'
|
|
} else if (value == 'dark') {
|
|
localStorage.theme = 'dark'
|
|
} else {
|
|
// use OS preference
|
|
localStorage.removeItem('theme')
|
|
}
|
|
|
|
updateTheme()
|
|
}
|
|
|
|
export const getTheme = () => {
|
|
if (localStorage.theme == 'light') {
|
|
return 'light'
|
|
} else if (localStorage.theme == 'dark') {
|
|
return 'dark'
|
|
} else {
|
|
return 'auto'
|
|
}
|
|
}
|
|
|
|
export const isDarkMode = () =>
|
|
document.documentElement.classList.contains('dark')
|