UNPKG

react-use-localstorage

Version:
46 lines (37 loc) 1.21 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); function useLocalStorage(key, initialValue) { if (initialValue === void 0) { initialValue = ''; } var _useState = react.useState(function () { return window.localStorage.getItem(key) || initialValue; }), value = _useState[0], setValue = _useState[1]; var setItem = function setItem(newValue) { setValue(newValue); window.localStorage.setItem(key, newValue); }; react.useEffect(function () { var newValue = window.localStorage.getItem(key); if (value !== newValue) { setValue(newValue || initialValue); } }); var handleStorage = react.useCallback(function (event) { if (event.key === key && event.newValue !== value) { setValue(event.newValue || initialValue); } }, [value]); react.useEffect(function () { window.addEventListener('storage', handleStorage); return function () { return window.removeEventListener('storage', handleStorage); }; }, [handleStorage]); return [value, setItem]; } exports.default = useLocalStorage; //# sourceMappingURL=react-use-localstorage.cjs.development.js.map