UNPKG

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 (24 loc) 774 B
import { useLocation } from './useLocation'; import { useParams } from './useParams'; /** * 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 */ export const useSplatPathBase = () => { const location = useLocation(); const params = useParams(); const splatPathRelativePart = params['*']; const splatPathBase = location.pathname.replace( new RegExp(`/${splatPathRelativePart}$`), '' ); return splatPathBase; };