AutorÃa | Ultima modificación | Ver Log |
import { useState, useCallback } from 'react'
const useLocalStorage = ({ stateName, initialValue }) => {
const name = `persist/${stateName}`
const getFromStorage = (name, defaultValue) => {
try {
const val = JSON.parse(localStorage.getItem(name) + '')
if (val !== null) {
return val
} else {
localStorage.setItem(name, JSON.stringify(defaultValue))
}
} catch {
return defaultValue
}
}
const [state, setState] = useState(getFromStorage(name, initialValue))
const setValue = useCallback(
(value) => {
localStorage.setItem(name, JSON.stringify(value))
setState(value)
},
[name]
)
return [state, setValue]
}
export default useLocalStorage