next-query-params
Version:
Convenient state management of query parameters in Next.js apps.
41 lines (38 loc) • 1.03 kB
JavaScript
import { useRouter, usePathname, useSearchParams } from 'next/navigation';
import { useMemo } from 'react';
function NextAdapterApp(_ref) {
var children = _ref.children;
var router = useRouter();
var pathname = usePathname();
var searchParams = useSearchParams();
var adapter = useMemo(function () {
function getUrl(location) {
var url = pathname;
if (location.search) {
url += location.search;
}
if (window.location.hash) {
url += window.location.hash;
}
return url;
}
return {
replace: function replace(location) {
router.replace(getUrl(location), {
scroll: false
});
},
push: function push(location) {
router.push(getUrl(location), {
scroll: false
});
},
location: {
search: searchParams.toString()
}
};
}, [searchParams, pathname, router]);
return children(adapter);
}
export { NextAdapterApp as default };
//# sourceMappingURL=app.esm.js.map