useLocalStorageState

Published on
1 mins read
––– views

Custom hooks to use local storage state

import { useState, useEffect } from "react"
export let useLocalStorageState = (key, defaultValue = "", options = {}) => {
let { serialize = JSON.stringify, deserialize = JSON.parse } = options
let [state, setState] = useState(() => {
let valueInLocalStorage = window.localStorage.getItem(key)
if (valueInLocalStorage) {
return deserialize(valueInLocalStorage)
}
return defaultValue
})
useEffect(() => {
window.localStorage.setItem(key, serialize(state))
}, [key, state, serialize])
return [state, setState]
}