UNPKG

react-use-localstorage

Version:
42 lines (35 loc) 1.12 kB
import { useState, useEffect, useCallback } from 'react'; function useLocalStorage(key, initialValue) { if (initialValue === void 0) { initialValue = ''; } var _useState = 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); }; useEffect(function () { var newValue = window.localStorage.getItem(key); if (value !== newValue) { setValue(newValue || initialValue); } }); var handleStorage = useCallback(function (event) { if (event.key === key && event.newValue !== value) { setValue(event.newValue || initialValue); } }, [value]); useEffect(function () { window.addEventListener('storage', handleStorage); return function () { return window.removeEventListener('storage', handleStorage); }; }, [handleStorage]); return [value, setItem]; } export default useLocalStorage; //# sourceMappingURL=react-use-localstorage.esm.js.map