From aebe8a5c23f8ecdc5d909b2f8fb866deaedb39ec Mon Sep 17 00:00:00 2001 From: Eric Vicenti Date: Wed, 20 Jun 2018 12:17:14 -0700 Subject: [PATCH] Fix isTransitioning on nested navigate (#4520) This bug wasnt apparent until we fixed the transitioner to fully respect isTransitioning. The router did not handle this properly until now. Enhanced a test to verify this in the future --- src/routers/StackRouter.js | 5 ++++- src/routers/__tests__/StackRouter-test.js | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/routers/StackRouter.js b/src/routers/StackRouter.js index 872642d7..16fcd6d3 100644 --- a/src/routers/StackRouter.js +++ b/src/routers/StackRouter.js @@ -401,7 +401,10 @@ export default (routeConfigs, stackConfig = {}) => { routeName: childRouterName, key: action.key || generateKey(), }; - return StateUtils.push(state, route); + return { + ...StateUtils.push(state, route), + isTransitioning: action.immediate !== true, + }; } } } diff --git a/src/routers/__tests__/StackRouter-test.js b/src/routers/__tests__/StackRouter-test.js index 4cba0bce..2cbb6d7c 100644 --- a/src/routers/__tests__/StackRouter-test.js +++ b/src/routers/__tests__/StackRouter-test.js @@ -692,6 +692,7 @@ describe('StackRouter', () => { state ); + expect(state2.isTransitioning).toEqual(true); expect(state2.index).toEqual(1); expect(state2.routes[1].index).toEqual(1); expect(state2.routes[1].routes[1].index).toEqual(1);