@grafana/faro-react
Version:
Faro package that enables easier integration in projects built with React.
35 lines • 1.33 kB
JavaScript
import { matchRoutes } from './routerDependencies';
export function getNumberOfUrlSegments(url) {
return url.split(/\\?\//).filter((currentSegment) => currentSegment.length > 0 && currentSegment !== ',').length;
}
export function getRouteFromLocation(routes, location) {
if (!routes || routes.length === 0) {
return location.pathname;
}
const matchedRoutes = matchRoutes(routes, location);
let pathBuilder = '';
if (matchedRoutes) {
for (let x = 0; x < matchedRoutes.length; x++) {
const branch = matchedRoutes[x];
const route = branch.route;
if (route) {
if (route.index) {
return branch.pathname;
}
let path = route.path;
if (path) {
path = path.startsWith('/') ? path : `/${path}`;
pathBuilder += path;
if (branch.pathname === location.pathname) {
if (getNumberOfUrlSegments(pathBuilder) !== getNumberOfUrlSegments(branch.pathname)) {
return path;
}
return pathBuilder;
}
}
}
}
}
return location.pathname;
}
//# sourceMappingURL=utils.js.map