| Current Path : /var/www/html/mampu/node_modules/vuesax/src/functions/toggleTheme/ |
| Current File : /var/www/html/mampu/node_modules/vuesax/src/functions/toggleTheme/index.ts |
const setTheme = (forceTheme: string) => {
document.body.classList.add('vs-remove-transition')
const media = window.matchMedia('(prefers-color-scheme: dark)')
let isThemeDark = media.matches
if (localStorage.vsTheme) {
isThemeDark = localStorage.vsTheme == 'dark'
}
if (isThemeDark) {
document.body.setAttribute('vs-theme', 'dark')
} else {
document.body.removeAttribute('vs-theme')
}
if (forceTheme == 'dark') {
document.body.setAttribute('vs-theme', 'dark')
} else if (forceTheme == 'light') {
document.body.removeAttribute('vs-theme')
}
localStorage.vsTheme = isThemeDark ? 'dark' : 'light'
setTimeout(() => {
document.body.classList.remove('vs-remove-transition')
}, 100);
return isThemeDark ? 'dark' : 'light'
}
const toggleTheme = (forceTheme: string) => {
document.body.classList.add('vs-remove-transition')
const media = window.matchMedia('(prefers-color-scheme: dark)')
let isThemeDark = media.matches
if (localStorage.vsTheme) {
isThemeDark = localStorage.vsTheme == 'dark'
}
if (!isThemeDark) {
document.body.setAttribute('vs-theme', 'dark')
} else {
document.body.removeAttribute('vs-theme')
}
if (forceTheme == 'dark') {
document.body.removeAttribute('vs-theme')
} else if (forceTheme == 'light') {
document.body.setAttribute('vs-theme', 'dark')
}
localStorage.vsTheme = !isThemeDark ? 'dark' : 'light'
setTimeout(() => {
document.body.classList.remove('vs-remove-transition')
}, 100);
return !isThemeDark ? 'dark' : 'light'
}
export {
toggleTheme,
setTheme
}