@maherunlocker/custom-react-table
Version:
dynamic table based on react table v7
40 lines • 1.6 kB
JavaScript
;
// credits to https://usehooks.com/useLocalStorage/
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLocalStorage = void 0;
const react_1 = require("react");
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
function useLocalStorage(key, initialValue) {
// State to store our value
// Pass initial state function to useState so logic is only executed once
const [storedValue, setStoredValue] = (0, react_1.useState)(() => {
try {
// Get from local storage by key
const item = window.localStorage.getItem(key);
// Parse stored json or if none return initialValue
return item ? JSON.parse(item) : initialValue;
}
catch (error) {
// If error also return initialValue
console.log(error);
return initialValue;
}
});
// Return a wrapped version of useState's setter function that ...
// ... persists the new value to localStorage.
const setValue = (0, react_1.useCallback)((value) => {
try {
// Save state
setStoredValue(value);
// Save to local storage
window.localStorage.setItem(key, JSON.stringify(value));
}
catch (error) {
// A more advanced implementation would handle the error case
console.log(error);
}
}, [key]);
return [storedValue, setValue];
}
exports.useLocalStorage = useLocalStorage;
//# sourceMappingURL=useLocalStorage.js.map