@grafana/faro-react
Version:
Faro package that enables easier integration in projects built with React.
39 lines • 1.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNumberOfUrlSegments = getNumberOfUrlSegments;
exports.getRouteFromLocation = getRouteFromLocation;
var routerDependencies_1 = require("./routerDependencies");
function getNumberOfUrlSegments(url) {
return url.split(/\\?\//).filter(function (currentSegment) { return currentSegment.length > 0 && currentSegment !== ','; }).length;
}
function getRouteFromLocation(routes, location) {
if (!routes || routes.length === 0) {
return location.pathname;
}
var matchedRoutes = (0, routerDependencies_1.matchRoutes)(routes, location);
var pathBuilder = '';
if (matchedRoutes) {
for (var x = 0; x < matchedRoutes.length; x++) {
var branch = matchedRoutes[x];
var route = branch.route;
if (route) {
if (route.index) {
return branch.pathname;
}
var path = route.path;
if (path) {
path = path.startsWith('/') ? path : "/".concat(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
;