Your IP : 216.73.216.79


Current Path : /var/www/html/dvs/node_modules/vuesax/src/functions/toggleTheme/
Upload File :
Current File : /var/www/html/dvs/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
}