usehooks-ts
Version:
React hook library, ready to use, written in Typescript.
29 lines • 1.01 kB
JavaScript
import { useEffect, useState } from 'react';
import { useEventListener } from '../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 = useState(readValue), storedValue = _a[0], setStoredValue = _a[1];
useEffect(function () {
setStoredValue(readValue());
}, []);
var handleStorageChange = function () {
setStoredValue(readValue());
};
useEventListener('storage', handleStorageChange);
useEventListener('local-storage', handleStorageChange);
return storedValue;
}
export default useReadLocalStorage;
//# sourceMappingURL=useReadLocalStorage.js.map