123456789101112131415161718192021 |
- import type {PlainRoute} from 'react-router';
- /**
- * For all routes with a `path`, find the first route without a route param (e.g. :apiKey)
- *
- * @param routes A list of react-router route objects
- * @param route If given, will only take into account routes between `route` and end of the routes list
- * @return Object Returns a react-router route object
- */
- export default function findFirstRouteWithoutRouteParam(
- routes: PlainRoute[],
- route?: PlainRoute
- ) {
- const routeIndex = route !== undefined ? routes.indexOf(route) : -1;
- const routesToSearch = route && routeIndex > -1 ? routes.slice(routeIndex) : routes;
- return (
- routesToSearch.filter(({path}) => !!path).find(({path}) => !path?.includes(':')) ||
- route
- );
- }
|