import useLocalStorage from 'shared/hooks/useLocalStorage';
import {useEffect } from 'react'

function useTheme() {
  // make a local storage item for the theme
  const [storedTheme, setStoredTheme, ready] = useLocalStorage('theme', undefined);

  useEffect(() => {
    // set the default theme based on user prefence after mounting
    if (ready && storedTheme === undefined) {
      const prefersDarkMode = (typeof window !== 'undefined' && typeof window.matchMedia === 'function')
        ? window.matchMedia(`(prefers-color-scheme: dark`).matches
        : undefined

      setStoredTheme(prefersDarkMode ? 'dark' : 'light')
    }
  }, [ready])

  return [storedTheme, setStoredTheme];
}

export default useTheme;