From 4e7b8a21d80f4e27ad04f4d020947f2e57402d31 Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Fri, 16 Feb 2018 20:19:03 +0100 Subject: [PATCH] fix(tabs): prevent reentering --- packages/core/src/components/tabs/tabs.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/src/components/tabs/tabs.tsx b/packages/core/src/components/tabs/tabs.tsx index de4a3990a0..4d5e257065 100644 --- a/packages/core/src/components/tabs/tabs.tsx +++ b/packages/core/src/components/tabs/tabs.tsx @@ -10,6 +10,7 @@ import { getIonApp } from '../../utils/helpers'; }) export class Tabs implements NavOutlet { private ids = -1; + private transitioning = false; private tabsId: number = (++tabIds); initialized = false; @@ -108,6 +109,9 @@ export class Tabs implements NavOutlet { */ @Method() select(tabOrIndex: number | HTMLIonTabElement): Promise { + if (this.transitioning) { + return Promise.resolve(false); + } const selectedTab = (typeof tabOrIndex === 'number' ? this.getByIndex(tabOrIndex) : tabOrIndex); if (!selectedTab) { return Promise.resolve(false); @@ -121,8 +125,9 @@ export class Tabs implements NavOutlet { } const leavingTab = this.selectedTab; - + this.transitioning = true; return selectedTab.setActive().then(() => { + this.transitioning = false; selectedTab.selected = true; if (leavingTab !== selectedTab) { if (leavingTab) {