From cc1fc2e03221c51967e9b599d4e39fedaf289dcf Mon Sep 17 00:00:00 2001 From: Dan Bucholtz Date: Fri, 23 Feb 2018 15:41:14 -0600 Subject: [PATCH] fix(tabs): select whether the tabs is currently selected when activating it, so it knows to go to it's root page if so --- packages/core/src/components/nav/nav.tsx | 8 ++++---- packages/core/src/components/tab/tab.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/src/components/nav/nav.tsx b/packages/core/src/components/nav/nav.tsx index ff6e861345..0e11421588 100644 --- a/packages/core/src/components/nav/nav.tsx +++ b/packages/core/src/components/nav/nav.tsx @@ -265,8 +265,8 @@ export class Nav implements PublicNav, NavOutlet { } @Method() - activateFromTab() { - return activateFromTabImpl(this); + activateFromTab(tabAlreadySelected: boolean) { + return activateFromTabImpl(this, tabAlreadySelected); } canSwipeBack(): boolean { @@ -628,11 +628,11 @@ export function navigateToUrl(nav: Nav, url: string, _method: string): Promise { +export function activateFromTabImpl(nav: Nav, tabAlreadySelected: boolean): Promise { return nav.onAllTransitionsComplete().then(() => { // if there is not a view set and it's not transitioning, // go ahead and set the root - if (nav.getViews().length === 0 && !nav.isTransitioning()) { + if ( (nav.getViews().length === 0 || tabAlreadySelected) && !nav.isTransitioning()) { return nav.setRoot(nav.root); } diff --git a/packages/core/src/components/tab/tab.tsx b/packages/core/src/components/tab/tab.tsx index af98d185a7..6d0a8d344c 100644 --- a/packages/core/src/components/tab/tab.tsx +++ b/packages/core/src/components/tab/tab.tsx @@ -130,7 +130,7 @@ export class Tab { // the tab's nav has not been initialized externally, so // check if we need to initiailize it return nav.componentOnReady() - .then(() => nav.activateFromTab()); + .then(() => nav.activateFromTab(this.selected)); }); }