useLocalStorage & useSessionStorage

11/8/2021 #reactjs #hooks
import { useState, useEffect } from "react"
function useStorage(key, defaultValue, storageObject) {
const [value, setValue] = useState(storageObject.getItem(key) ?? defaultValue)
useEffect(() => {
value === undefined
? storageObject.removeItem(key)
: storageObject.setItem(key, JSON.stringify(value))
}, [value])
return [value, setValue]
}
export function useLocalStorage(key, defaultValue) {
return useStorage(key, defaultValue, window.localStorage)
}
export function useSessionStorage(key, defaultValue) {
return useStorage(key, defaultValue, window.sessionStorage)
}