From 7bb9535f601d2469ce60687a9c03f8b1cfe4aba4 Mon Sep 17 00:00:00 2001 From: Shane Date: Mon, 6 Oct 2025 07:54:41 -0700 Subject: [PATCH] fix(tabs): respect stencil lifecycle order for tab selection (#30702) Issue number: resolves #30611 --------- ## What is the current behavior? Currently, the way tabs are set in the tab bar abuses a bug that existed in older versions of Stencil where children would be rendered out of the correct order. This worked in the tab and tab bar's favor previously, but after the fix it broke our implementation so tabs would no longer correctly indicate the selected tab on direct navigation. ## What is the new behavior? We had a temporary fix before we knew what actually caused this issue before, which was basically just a timeout. That blindly worked because it triggered after the child was fully rendered. This change embraces the new, and correct, way these components render and triggers tab updates correctly. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information Current dev build: ``` 8.7.6-dev.11759345401.165fca78 ``` --------- Co-authored-by: ionitron --- core/src/components/tab-bar/tab-bar.tsx | 26 ++++++--- ...-container-ios-ltr-Mobile-Chrome-linux.png | Bin 9565 -> 9529 bytes ...-container-ios-ltr-Mobile-Safari-linux.png | Bin 5824 -> 5777 bytes core/src/components/tabs/tabs.tsx | 50 +++++++++--------- 4 files changed, 46 insertions(+), 30 deletions(-) diff --git a/core/src/components/tab-bar/tab-bar.tsx b/core/src/components/tab-bar/tab-bar.tsx index 7dea85e741..d17bb0ba14 100644 --- a/core/src/components/tab-bar/tab-bar.tsx +++ b/core/src/components/tab-bar/tab-bar.tsx @@ -22,6 +22,7 @@ import type { TabBarChangedEventDetail } from './tab-bar-interface'; }) export class TabBar implements ComponentInterface { private keyboardCtrl: KeyboardController | null = null; + private didLoad = false; @Element() el!: HTMLElement; @@ -40,6 +41,12 @@ export class TabBar implements ComponentInterface { @Prop() selectedTab?: string; @Watch('selectedTab') selectedTabChanged() { + // Skip the initial watcher call that happens during component load + // We handle that in componentDidLoad to ensure children are ready + if (!this.didLoad) { + return; + } + if (this.selectedTab !== undefined) { this.ionTabBarChanged.emit({ tab: this.selectedTab, @@ -65,8 +72,19 @@ export class TabBar implements ComponentInterface { */ @Event() ionTabBarLoaded!: EventEmitter; - componentWillLoad() { - this.selectedTabChanged(); + componentDidLoad() { + this.ionTabBarLoaded.emit(); + // Set the flag to indicate the component has loaded + // This allows the watcher to emit changes from this point forward + this.didLoad = true; + + // Emit the initial selected tab after the component is fully loaded + // This ensures all child components (ion-tab-button) are ready + if (this.selectedTab !== undefined) { + this.ionTabBarChanged.emit({ + tab: this.selectedTab, + }); + } } async connectedCallback() { @@ -90,10 +108,6 @@ export class TabBar implements ComponentInterface { } } - componentDidLoad() { - this.ionTabBarLoaded.emit(); - } - render() { const { color, translucent, keyboardVisible } = this; const mode = getIonMode(this); diff --git a/core/src/components/tab-bar/test/translucent/tab-bar.e2e.ts-snapshots/tab-bar-translucent-container-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/tab-bar/test/translucent/tab-bar.e2e.ts-snapshots/tab-bar-translucent-container-ios-ltr-Mobile-Chrome-linux.png index 23aa68062ece8aa97f7df658bf0e3127212def20..e451765985d6a0423050b13dce39cfd42ca84daf 100644 GIT binary patch literal 9529 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 XbGSB$ZrV}P00000NkvXXu0mjfQazw& literal 9565 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%0DRB2Q*fdb9E{Hkw<`k184m00W_5TSqfYi00;a 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 ZN@_yE&(~`~d6AU?DhitNb+Q)W{|~2@F7^Nb literal 5824 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