From 85bfc25bec77ab00204673783b11fafaaf682477 Mon Sep 17 00:00:00 2001 From: Simon Howe Date: Mon, 18 Apr 2016 19:17:06 +0200 Subject: [PATCH] Fixes nodes w/ a slash under a path-prefixed scope. E.g. localhost:4043/scoped/{state:{label:"/zing"... Double encode is solution! - https://github.com/visionmedia/page.js/issues/187 --- client/app/scripts/utils/router-utils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/app/scripts/utils/router-utils.js b/client/app/scripts/utils/router-utils.js index df39d11d8..8bcddf7b1 100644 --- a/client/app/scripts/utils/router-utils.js +++ b/client/app/scripts/utils/router-utils.js @@ -14,12 +14,12 @@ function shouldReplaceState(prevState, nextState) { export function updateRoute() { const state = AppStore.getAppState(); - const stateUrl = JSON.stringify(state); + const stateUrl = encodeURIComponent(encodeURIComponent(JSON.stringify(state))); const dispatch = false; const urlStateString = window.location.hash .replace('#!/state/', '') .replace('#!/', '') || '{}'; - const prevState = JSON.parse(decodeURIComponent(urlStateString)); + const prevState = JSON.parse(decodeURIComponent(decodeURIComponent(urlStateString))); if (shouldReplaceState(prevState, state)) { // Replace the top of the history rather than pushing on a new item.