@@ -36,6 +36,7 @@ export class Content implements ComponentInterface {
3636 private backgroundContentEl ?: HTMLElement ;
3737 private isMainContent = true ;
3838 private resizeTimeout : ReturnType < typeof setTimeout > | null = null ;
39+ private observerResizeTimeout : ReturnType < typeof setTimeout > | null = null ;
3940 private inheritedAttributes : Attributes = { } ;
4041
4142 private tabsElement : HTMLElement | null = null ;
@@ -446,10 +447,14 @@ export class Content implements ComponentInterface {
446447 }
447448
448449 if ( 'ResizeObserver' in window ) {
449- let timeout : any ;
450450 this . resizeObserver = new ResizeObserver ( ( ) => {
451- clearTimeout ( timeout ) ;
452- timeout = setTimeout ( ( ) => this . resize ( ) , 100 ) ;
451+ if ( this . observerResizeTimeout !== null ) {
452+ clearTimeout ( this . observerResizeTimeout ) ;
453+ }
454+ this . observerResizeTimeout = setTimeout ( ( ) => {
455+ this . observerResizeTimeout = null ;
456+ this . resize ( ) ;
457+ } , 100 ) ;
453458 } ) ;
454459 }
455460
@@ -486,6 +491,10 @@ export class Content implements ComponentInterface {
486491 }
487492
488493 private disconnectObservers ( ) {
494+ if ( this . observerResizeTimeout !== null ) {
495+ clearTimeout ( this . observerResizeTimeout ) ;
496+ this . observerResizeTimeout = null ;
497+ }
489498 if ( this . mutationObserver ) {
490499 this . mutationObserver . disconnect ( ) ;
491500 this . mutationObserver = null ;
@@ -503,17 +512,10 @@ export class Content implements ComponentInterface {
503512
504513 this . resizeObserver . disconnect ( ) ;
505514
506- const headers = this . el . parentElement . querySelectorAll ( 'ion-header' ) ;
507- const footers = this . el . parentElement . querySelectorAll ( 'ion-footer' ) ;
515+ const targets = this . el . parentElement . querySelectorAll ( ':scope > ion-header, :scope > ion-footer' ) ;
508516
509517 const observer = this . resizeObserver ;
510-
511- if ( observer === null || observer === undefined ) {
512- return ;
513- }
514-
515- headers . forEach ( ( header ) => observer . observe ( header ) ) ;
516- footers . forEach ( ( footer ) => observer . observe ( footer ) ) ;
518+ targets . forEach ( ( target ) => observer . observe ( target ) ) ;
517519 }
518520
519521 private onScrollStart ( ) {
0 commit comments