| 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) |
| } |