UNPKG

@grafana/faro-react

Version:

Faro package that enables easier integration in projects built with React.

40 lines 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRouteFromLocation = exports.getNumberOfUrlSegments = void 0; var routerDependencies_1 = require("./routerDependencies"); function getNumberOfUrlSegments(url) { return url.split(/\\?\//).filter(function (currentSegment) { return currentSegment.length > 0 && currentSegment !== ','; }).length; } exports.getNumberOfUrlSegments = getNumberOfUrlSegments; 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; } exports.getRouteFromLocation = getRouteFromLocation; //# sourceMappingURL=utils.js.map