usehooks-ts
Version:
React hook library, ready to use, written in Typescript.
31 lines • 1.16 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var useEventListener_1 = require("../useEventListener");
function useReadLocalStorage(key) {
var readValue = function () {
if (typeof window === 'undefined') {
return null;
}
try {
var item = window.localStorage.getItem(key);
return item ? JSON.parse(item) : null;
}
catch (error) {
console.warn("Error reading localStorage key \u201C".concat(key, "\u201D:"), error);
return null;
}
};
var _a = (0, react_1.useState)(readValue), storedValue = _a[0], setStoredValue = _a[1];
(0, react_1.useEffect)(function () {
setStoredValue(readValue());
}, []);
var handleStorageChange = function () {
setStoredValue(readValue());
};
(0, useEventListener_1.useEventListener)('storage', handleStorageChange);
(0, useEventListener_1.useEventListener)('local-storage', handleStorageChange);
return storedValue;
}
exports.default = useReadLocalStorage;
//# sourceMappingURL=useReadLocalStorage.js.map
;