From aabca44a29a42572e1a5be92aa52b6fe1c8ae80c Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Thu, 5 Dec 2019 18:20:22 +0200 Subject: [PATCH] urlParamsForPath moved to separate file --- src/router/Router/Router.js | 12 ++---------- src/router/Router/urlParamsForPath.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 src/router/Router/urlParamsForPath.js diff --git a/src/router/Router/Router.js b/src/router/Router/Router.js index 3d75fda67..bdb0628f0 100644 --- a/src/router/Router/Router.js +++ b/src/router/Router/Router.js @@ -7,6 +7,7 @@ const deepEqual = require('deep-equal'); const { RouteFocusedProvider } = require('../RouteFocusedContext'); const Route = require('../Route'); const routeConfigForPath = require('./routeConfigForPath'); +const urlParamsForPath = require('./urlParamsForPath'); const Router = ({ className, onPathNotMatch, ...props }) => { const { homePath, viewsConfig } = React.useMemo(() => ({ @@ -52,16 +53,7 @@ const Router = ({ className, onPathNotMatch, ...props }) => { return; } - const matches = pathname.match(routeConfig.regexp); - const urlParams = routeConfig.urlParamsNames.reduce((urlParams, name, index) => { - if (Array.isArray(matches) && typeof matches[index + 1] === 'string') { - urlParams[name] = decodeURIComponent(matches[index + 1]); - } else { - urlParams[name] = null; - } - - return urlParams; - }, {}); + const urlParams = urlParamsForPath(routeConfig, pathname); const routeViewIndex = viewsConfig.findIndex((vc) => vc.includes(routeConfig)); const routeIndex = viewsConfig[routeViewIndex].findIndex((rc) => rc === routeConfig); setViews((views) => { diff --git a/src/router/Router/urlParamsForPath.js b/src/router/Router/urlParamsForPath.js new file mode 100644 index 000000000..5a518094f --- /dev/null +++ b/src/router/Router/urlParamsForPath.js @@ -0,0 +1,14 @@ +const urlParamsForPath = (routeConfig, path) => { + const matches = path.match(routeConfig.regexp); + return routeConfig.urlParamsNames.reduce((urlParams, name, index) => { + if (Array.isArray(matches) && typeof matches[index + 1] === 'string') { + urlParams[name] = decodeURIComponent(matches[index + 1]); + } else { + urlParams[name] = null; + } + + return urlParams; + }, {}); +}; + +module.exports = urlParamsForPath;