11import { Component , ElementRef , inject , OnInit } from '@angular/core' ;
2- import { IonIcon , IonLabel , IonTabBar , IonTabButton , IonTabs , ViewDidEnter } from '@ionic/angular/standalone' ;
2+ import { IonIcon , IonLabel , IonTabBar , IonTabButton , IonTabs , ViewDidEnter , ViewDidLeave , Gesture } from '@ionic/angular/standalone' ;
33import { NavigationEnd , Router } from '@angular/router' ;
44import { filter } from 'rxjs' ;
5+
56// import { registerTabBarEffect } from '@rdlabo/ionic-theme-ios26';
67import { registerTabBarEffect } from '../../../../src' ;
78
@@ -11,9 +12,10 @@ import { registerTabBarEffect } from '../../../../src';
1112 styleUrls : [ 'tabs.page.scss' ] ,
1213 imports : [ IonTabs , IonTabBar , IonTabButton , IonIcon , IonLabel ] ,
1314} )
14- export class TabsPage implements OnInit , ViewDidEnter {
15+ export class TabsPage implements OnInit , ViewDidEnter , ViewDidLeave {
1516 readonly #router = inject ( Router ) ;
1617 readonly #el = inject ( ElementRef ) ;
18+ readonly registeredGestures : Gesture [ ] = [ ] ;
1719 ngOnInit ( ) {
1820 this . #router. events . pipe ( filter ( ( event ) => event instanceof NavigationEnd ) ) . subscribe ( ( params ) => {
1921 const tabBar = this . #el. nativeElement . querySelector ( 'ion-tab-bar' ) ;
@@ -29,6 +31,10 @@ export class TabsPage implements OnInit, ViewDidEnter {
2931 }
3032
3133 ionViewDidEnter ( ) {
32- registerTabBarEffect ( document . querySelector < HTMLElement > ( 'ion-tab-bar' ) ! ) ;
34+ this . registeredGestures . push ( registerTabBarEffect ( document . querySelector < HTMLElement > ( 'ion-tab-bar' ) ! ) ) ;
35+ }
36+
37+ ionViewDidLeave ( ) {
38+ this . registeredGestures . forEach ( ( gesture ) => gesture . destroy ( ) ) ;
3339 }
3440}
0 commit comments