ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
26 lines • 995 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSplatPathBase = void 0;
const useLocation_1 = require("./useLocation.cjs");
const useParams_1 = require("./useParams.cjs");
/**
* Utility hook to get the base path of a splat path.
* Compatible both with react-router v6 and v7.
*
* Example:
* If a splat path is defined as `/posts/:id/show/*`,
* and the current location is `/posts/12/show/3`,
* this hook will return `/posts/12/show`.
*
* Solution inspired by
* https://github.com/remix-run/react-router/issues/11052#issuecomment-1828470203
*/
const useSplatPathBase = () => {
const location = (0, useLocation_1.useLocation)();
const params = (0, useParams_1.useParams)();
const splatPathRelativePart = params['*'];
const splatPathBase = location.pathname.replace(new RegExp(`/${splatPathRelativePart}$`), '');
return splatPathBase;
};
exports.useSplatPathBase = useSplatPathBase;
//# sourceMappingURL=useSplatPathBase.js.map