import { useCallback, useEffect } from "react" import useSharedState from "./use-shared-state" const useTheme = () => { const isClient = typeof window === "object" const [themeType, setThemeType] = useSharedState('theme', 'light') useEffect(() => { if (!isClient) return const storedTheme = localStorage.getItem('drift-theme') if (storedTheme) { setThemeType(storedTheme) } }, [isClient, setThemeType]) const changeTheme = useCallback(() => { setThemeType(last => { const newTheme = last === 'dark' ? 'light' : 'dark' localStorage.setItem('drift-theme', newTheme) return newTheme }) }, [setThemeType]) return { theme: themeType, changeTheme } } export default useTheme