import { useState, useEffect } from 'react' function getValue(key, initValue) { const savedValue = JSON.parse(localStorage.getItem(key)) if (savedValue) return savedValue if (initValue instanceof Function) return initValue() return initValue } export default function useLocalStorage(key, initValue) { const [value, setValue] = useState(() => { return getValue(key, initValue) }) useEffect(() => { localStorage.setItem(key, JSON.stringify(value)) }, [value]) return [value, setValue] }