From ca03a6d5f7a0d57ccb6db29284338152468894f2 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Fri, 13 Feb 2026 13:56:22 -0800 Subject: [PATCH 1/2] fix(nav): reset direction state when navigation is canceled --- .../angular/common/src/providers/nav-controller.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/angular/common/src/providers/nav-controller.ts b/packages/angular/common/src/providers/nav-controller.ts index 1ae3a0a603f..c6e10a4a9c2 100644 --- a/packages/angular/common/src/providers/nav-controller.ts +++ b/packages/angular/common/src/providers/nav-controller.ts @@ -1,6 +1,6 @@ import { Location } from '@angular/common'; import { Injectable, Optional } from '@angular/core'; -import { NavigationExtras, Router, UrlSerializer, UrlTree, NavigationStart } from '@angular/router'; +import { NavigationExtras, Router, UrlSerializer, UrlTree, NavigationStart, NavigationCancel, NavigationError } from '@angular/router'; import type { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core/components'; import { IonRouterOutlet } from '../directives/navigation/router-outlet'; @@ -42,6 +42,14 @@ export class NavController { this.guessDirection = this.guessAnimation = id < this.lastNavId ? 'back' : 'forward'; this.lastNavId = this.guessDirection === 'forward' ? ev.id : id; } + + // Reset explicit direction when navigation is canceled (e.g., guard rejection) + // to prevent stale direction from leaking into the next navigation + if (ev instanceof NavigationCancel || ev instanceof NavigationError) { + this.direction = DEFAULT_DIRECTION; + this.animated = DEFAULT_ANIMATED; + this.animationBuilder = undefined; + } }); } From a54e161a53916fc42f629f32d0871a5f1afe3a07 Mon Sep 17 00:00:00 2001 From: ShaneK Date: Fri, 13 Feb 2026 14:14:10 -0800 Subject: [PATCH 2/2] chore(lint): fixing lint --- .../angular/common/src/providers/nav-controller.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/angular/common/src/providers/nav-controller.ts b/packages/angular/common/src/providers/nav-controller.ts index c6e10a4a9c2..4bb33a67594 100644 --- a/packages/angular/common/src/providers/nav-controller.ts +++ b/packages/angular/common/src/providers/nav-controller.ts @@ -1,6 +1,14 @@ import { Location } from '@angular/common'; import { Injectable, Optional } from '@angular/core'; -import { NavigationExtras, Router, UrlSerializer, UrlTree, NavigationStart, NavigationCancel, NavigationError } from '@angular/router'; +import { + NavigationExtras, + Router, + UrlSerializer, + UrlTree, + NavigationStart, + NavigationCancel, + NavigationError, +} from '@angular/router'; import type { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core/components'; import { IonRouterOutlet } from '../directives/navigation/router-outlet';