From 8da70ea886a870c9423fe923ab2e9ef22bf5b7c2 Mon Sep 17 00:00:00 2001 From: Rich Glazerman Date: Fri, 17 Jul 2020 14:47:03 -0400 Subject: [PATCH] Update queryParamsTransition to not change QueryParams if transition has been aborted --- lib/router/router.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/router/router.ts b/lib/router/router.ts index 973dac4c..e22c81f9 100644 --- a/lib/router/router.ts +++ b/lib/router/router.ts @@ -86,7 +86,7 @@ export default abstract class Router { @param {Function} callback */ map(callback: MatchCallback) { - this.recognizer.map(callback, function(recognizer, routes) { + this.recognizer.map(callback, function (recognizer, routes) { for (let i = routes.length - 1, proceed = true; i >= 0 && proceed; --i) { let route = routes[i]; let handler = route.handler as string; @@ -137,10 +137,12 @@ export default abstract class Router { newTransition.promise = newTransition.promise!.then( (result: TransitionState | Route | Error | undefined) => { - this._updateURL(newTransition, oldState); - this.didTransition(this.currentRouteInfos!); - this.toInfos(newTransition, newState.routeInfos, true); - this.routeDidChange(newTransition); + if (!newTransition.isAborted) { + this._updateURL(newTransition, oldState); + this.didTransition(this.currentRouteInfos!); + this.toInfos(newTransition, newState.routeInfos, true); + this.routeDidChange(newTransition); + } return result; }, null, @@ -821,7 +823,7 @@ export default abstract class Router { */ reset() { if (this.state) { - forEach>(this.state.routeInfos.slice().reverse(), function(routeInfo) { + forEach>(this.state.routeInfos.slice().reverse(), function (routeInfo) { let route = routeInfo.route; if (route !== undefined) { if (route.exit !== undefined) {