import { SSR } from '@/lib/constants' import { useCallback, useState } from 'react' export default function useLocalState (storageKey, defaultValue) { const [value, innerSetValue] = useState( (SSR ? null : JSON.parse(window.localStorage.getItem(storageKey))) || defaultValue ) const setValue = useCallback((newValue) => { window.localStorage.setItem(storageKey, JSON.stringify(newValue)) innerSetValue(newValue) }, [storageKey]) const clearValue = useCallback(() => { window.localStorage.removeItem(storageKey) innerSetValue(null) }, [storageKey]) return [value, setValue, clearValue] }