react-use-localstorage
Version:
Use Local Storage with React hooks
46 lines (37 loc) • 1.21 kB
JavaScript
;
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