@tanstack/react-persister
Version:
Utilities for persisting state to local storage, session storage, indexedDB, and more.
33 lines (32 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const react = require("react");
const useStoragePersister = require("./useStoragePersister.cjs");
function useStorageState(initialValue, options) {
const persister = useStoragePersister.useStoragePersister(options);
const [state, setState] = react.useState(initialValue);
react.useEffect(() => {
setState(persister.loadState() ?? initialValue);
}, []);
react.useEffect(() => {
persister.saveState(state);
}, [state]);
return [state, setState];
}
function useLocalStorageState(key, initialValue, options) {
return useStorageState(initialValue, {
...options,
key,
storage: typeof window !== "undefined" ? localStorage : null
});
}
function useSessionStorageState(key, initialValue, options) {
return useStorageState(initialValue, {
...options,
key,
storage: typeof window !== "undefined" ? sessionStorage : null
});
}
exports.useLocalStorageState = useLocalStorageState;
exports.useSessionStorageState = useSessionStorageState;
//# sourceMappingURL=useStorageState.cjs.map