UNPKG

2.15 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
11
12var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
13
14var _reactRouterDom = require("react-router-dom");
15
16var _loggedFilter = _interopRequireDefault(require("./logged-filter"));
17
18/* eslint-disable import/no-extraneous-dependencies */
19var findMatch = function findMatch(routesAndCmps, pathname, isLoggedIn) {
20 var routesAndCmpsWithGoodPaths = routesAndCmps.map(function (rac) {
21 return (0, _objectSpread2.default)({}, rac, {
22 route: (0, _objectSpread2.default)({}, rac.route, {
23 path: typeof rac.route.path === 'function' ? rac.route.path() : rac.route.path
24 })
25 });
26 });
27 var filteredRoutesAndCmps = routesAndCmpsWithGoodPaths.filter(function (_ref) {
28 var route = _ref.route;
29 return (0, _loggedFilter.default)(route, isLoggedIn);
30 });
31 var notFoundRouteAndCmp = filteredRoutesAndCmps.find(function (_ref2) {
32 var route = _ref2.route;
33 return !route.path;
34 });
35
36 if (!notFoundRouteAndCmp) {
37 throw Error('You need a route without path to render a 404 page');
38 }
39
40 var match;
41 var activeRouteAndCmp = filteredRoutesAndCmps.find(function (_ref3) {
42 var route = _ref3.route;
43 match = (0, _reactRouterDom.matchPath)(pathname, route);
44 return match;
45 }) || notFoundRouteAndCmp;
46 var _activeRouteAndCmp$ro = activeRouteAndCmp.route,
47 path = _activeRouteAndCmp$ro.path,
48 exact = _activeRouteAndCmp$ro.exact,
49 route = (0, _objectWithoutProperties2.default)(_activeRouteAndCmp$ro, ["path", "exact"]); // Removing these properties from route
50
51 return {
52 match: match,
53 route: route,
54 Component: activeRouteAndCmp.component,
55 // flow-disable-next-line
56 routes: filteredRoutesAndCmps.map(function (rac) {
57 return rac.route;
58 })
59 };
60};
61
62var _default = findMatch;
63exports.default = _default;
\No newline at end of file