import { Injectable } from '@angular/core'; import { CanDeactivate } from '@angular/router'; import { Observable } from 'rxjs'; export interface CanDeactivateComponent { canDeactivate: () => Promise | Observable | boolean; } @Injectable({ providedIn: 'root' }) export class ConfirmNavigationGuard implements CanDeactivate { canDeactivate (component: CanDeactivateComponent) { return component.canDeactivate ? component.canDeactivate() : true; } }