From 8a02b28efeca81c25176ff52508b4005441e8314 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Wed, 8 Apr 2020 15:16:10 -0400 Subject: [PATCH] fix(ios): properly animate content when navigating from a tabbed page (#20918) fixes #20912 --- core/src/utils/transition/ios.transition.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/utils/transition/ios.transition.ts b/core/src/utils/transition/ios.transition.ts index c62f54af77..ca02623b80 100644 --- a/core/src/utils/transition/ios.transition.ts +++ b/core/src/utils/transition/ios.transition.ts @@ -386,12 +386,18 @@ export const iosTransitionAnimation = (navEl: HTMLElement, opts: TransitionOptio // setup leaving view if (leavingEl) { - const leavingContent = createAnimation(); const leavingContentEl = leavingEl.querySelector(':scope > ion-content'); + const leavingToolBarEls = leavingEl.querySelectorAll(':scope > ion-header > ion-toolbar'); + const leavingHeaderEls = leavingEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *'); + + if (!leavingContentEl && leavingToolBarEls.length === 0 && leavingHeaderEls.length === 0) { + leavingContent.addElement(leavingEl.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs')!); // REVIEW + } else { + leavingContent.addElement(leavingContentEl!); // REVIEW + leavingContent.addElement(leavingHeaderEls); + } - leavingContent.addElement(leavingContentEl!); // REVIEW - leavingContent.addElement(leavingEl.querySelectorAll(':scope > ion-header > *:not(ion-toolbar), :scope > ion-footer > *')); rootAnimation.addAnimation(leavingContent); if (backDirection) { @@ -445,7 +451,6 @@ export const iosTransitionAnimation = (navEl: HTMLElement, opts: TransitionOptio } } - const leavingToolBarEls = leavingEl.querySelectorAll(':scope > ion-header > ion-toolbar'); leavingToolBarEls.forEach(leavingToolBarEl => { const leavingToolBar = createAnimation(); leavingToolBar.addElement(leavingToolBarEl);