diff --git a/packages/builder/src/builderStore/store/screenTemplates/sanitizeUrl.js b/packages/builder/src/builderStore/store/screenTemplates/sanitizeUrl.js index eab985c0a5..96b7633e41 100644 --- a/packages/builder/src/builderStore/store/screenTemplates/sanitizeUrl.js +++ b/packages/builder/src/builderStore/store/screenTemplates/sanitizeUrl.js @@ -4,7 +4,7 @@ export default function(url) { .map(part => { // if parameter, then use as is if (part.startsWith(":")) return part - return encodeURIComponent(part.replace(" ", "-")) + return encodeURIComponent(part.replace(/ /g, "-")) }) .join("/") .toLowerCase() diff --git a/packages/client/src/render/screenRouter.js b/packages/client/src/render/screenRouter.js index 3bfc85caaf..0c045097ed 100644 --- a/packages/client/src/render/screenRouter.js +++ b/packages/client/src/render/screenRouter.js @@ -44,7 +44,7 @@ export const screenRouter = ({ screens, onScreenSelected, window }) => { } const routes = screens.map(s => makeRootedPath(s.route)) - let fallback = routes.findIndex(([p]) => p === "*") + let fallback = routes.findIndex(([p]) => p === makeRootedPath("*")) if (fallback < 0) fallback = 0 let current @@ -53,7 +53,7 @@ export const screenRouter = ({ screens, onScreenSelected, window }) => { const _url = makeRootedPath(url.state || url) current = routes.findIndex( p => - p !== "*" && + p !== makeRootedPath("*") && new RegExp("^" + p.toLowerCase() + "$").test(_url.toLowerCase()) ) @@ -61,6 +61,8 @@ export const screenRouter = ({ screens, onScreenSelected, window }) => { if (current === -1) { routes.forEach((p, i) => { + // ignore home - which matched everything + if (p === makeRootedPath("*")) return const pm = regexparam(p) const matches = pm.pattern.exec(_url)