UNPKG

opendash

Version:

open.DASH data visualization framework

28 lines 1.14 kB
import * as React from "react"; import { useEventListener } from ".."; export function useLocalStorage(key, initialValue) { var _a = React.useState(function () { try { var item = window.localStorage.getItem(key); return item ? JSON.parse(item) : initialValue; } catch (error) { console.error(error); return initialValue; } }), storedValue = _a[0], setStoredValue = _a[1]; useEventListener("storage", function (_a) { var k = _a.key, newValue = _a.newValue; if (k === key && JSON.stringify(storedValue) !== newValue) { setStoredValue(JSON.parse(newValue)); } }); var setValue = function (value) { var newValue = value instanceof Function ? value(storedValue) : value; setStoredValue(newValue); window.localStorage.setItem(key, JSON.stringify(newValue)); window.dispatchEvent(new StorageEvent("storage", { key: key, newValue: JSON.stringify(newValue) })); }; return [storedValue, setValue]; } //# sourceMappingURL=useLocalStorage.js.map