@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
26 lines (25 loc) • 830 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSearchParamsWithCache = useSearchParamsWithCache;
const shared_1 = require("@etsoo/shared");
const react_router_dom_1 = require("react-router-dom");
/**
* Read search parameters with cache
* @param cacheKey Cache key
* @param storage Storage
*/
function useSearchParamsWithCache(cacheKey, storage) {
const data = {};
if (cacheKey) {
storage ?? (storage = new shared_1.WindowStorage());
const paras = storage.getObject(cacheKey);
if (paras) {
Object.assign(data, paras);
}
}
if ((0, react_router_dom_1.useInRouterContext)()) {
const [sp] = (0, react_router_dom_1.useSearchParams)();
Object.assign(data, Object.fromEntries(sp.entries()));
}
return data;
}