@@ -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 ;
@@ -441,10 +442,14 @@ export class Content implements ComponentInterface {
441442 }
442443
443444 if ( 'ResizeObserver' in window ) {
444- let timeout : any ;
445445 this . resizeObserver = new ResizeObserver ( ( ) => {
446- clearTimeout ( timeout ) ;
447- timeout = setTimeout ( ( ) => this . resize ( ) , 100 ) ;
446+ if ( this . observerResizeTimeout !== null ) {
447+ clearTimeout ( this . observerResizeTimeout ) ;
448+ }
449+ this . observerResizeTimeout = setTimeout ( ( ) => {
450+ this . observerResizeTimeout = null ;
451+ this . resize ( ) ;
452+ } , 100 ) ;
448453 } ) ;
449454 }
450455
@@ -481,6 +486,10 @@ export class Content implements ComponentInterface {
481486 }
482487
483488 private disconnectObservers ( ) {
489+ if ( this . observerResizeTimeout !== null ) {
490+ clearTimeout ( this . observerResizeTimeout ) ;
491+ this . observerResizeTimeout = null ;
492+ }
484493 if ( this . mutationObserver ) {
485494 this . mutationObserver . disconnect ( ) ;
486495 this . mutationObserver = null ;
@@ -498,17 +507,10 @@ export class Content implements ComponentInterface {
498507
499508 this . resizeObserver . disconnect ( ) ;
500509
501- const headers = this . el . parentElement . querySelectorAll ( 'ion-header' ) ;
502- const footers = this . el . parentElement . querySelectorAll ( 'ion-footer' ) ;
510+ const targets = this . el . parentElement . querySelectorAll ( ':scope > ion-header, :scope > ion-footer' ) ;
503511
504512 const observer = this . resizeObserver ;
505-
506- if ( observer === null || observer === undefined ) {
507- return ;
508- }
509-
510- headers . forEach ( ( header ) => observer . observe ( header ) ) ;
511- footers . forEach ( ( footer ) => observer . observe ( footer ) ) ;
513+ targets . forEach ( ( target ) => observer . observe ( target ) ) ;
512514 }
513515
514516 private onScrollStart ( ) {
0 commit comments