UNPKG

1.78 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 _reactRouter = require("react-router");
15
16var _loggedFilter = _interopRequireDefault(require("./logged-filter"));
17
18/* eslint-disable import/no-extraneous-dependencies */
19var findMatch = function findMatch(routes, pathname, isLoggedIn) {
20 var routesWithPlainPaths = routes.map(function (r) {
21 return (0, _objectSpread2.default)({}, r, {
22 path: typeof r.path === 'function' ? r.path() : r.path
23 });
24 });
25 var accessibleRoutes = routesWithPlainPaths.filter(function (r) {
26 return (0, _loggedFilter.default)(r, isLoggedIn);
27 });
28 var notFoundRoute = accessibleRoutes.find(function (_ref) {
29 var path = _ref.path;
30 return !path;
31 });
32
33 if (!notFoundRoute) {
34 throw Error('You need a route without path to render a 404 page');
35 }
36
37 var match;
38 var activeRoute = accessibleRoutes.find(function (route) {
39 match = (0, _reactRouter.matchPath)(pathname, route);
40 return match;
41 }) || notFoundRoute;
42 var path = activeRoute.path,
43 exact = activeRoute.exact,
44 route = (0, _objectWithoutProperties2.default)(activeRoute, ["path", "exact"]); // Removing these properties from route
45
46 return {
47 match: match,
48 route: route,
49 routesWithPlainPaths: routesWithPlainPaths,
50 accessibleRoutes: accessibleRoutes,
51 notFoundRoute: notFoundRoute
52 };
53};
54
55var _default = findMatch;
56exports.default = _default;
\No newline at end of file