Files
EinfachHans 1b11ff7fb9 feat(back-button): add 'backButtonDefaultHref' property to Ionic Config (#20491)
closes #19305

Co-authored-by: Brandy Carney <brandy@ionic.io>
2020-04-27 10:57:43 -04:00

38 lines
951 B
TypeScript

import { Directive, HostListener, Optional } from '@angular/core';
import { Config } from '../../providers/config';
import { NavController } from '../../providers/nav-controller';
import { IonRouterOutlet } from './ion-router-outlet';
@Directive({
selector: 'ion-back-button',
inputs: ['defaultHref'],
})
export class IonBackButtonDelegate {
defaultHref: string | undefined | null;
constructor(
@Optional() private routerOutlet: IonRouterOutlet,
private navCtrl: NavController,
private config: Config
) {}
/**
* @internal
*/
@HostListener('click', ['$event'])
onClick(ev: Event) {
const defaultHref = this.defaultHref || this.config.get('backButtonDefaultHref');
if (this.routerOutlet && this.routerOutlet.canGoBack()) {
this.routerOutlet.pop();
ev.preventDefault();
} else if (defaultHref != null) {
this.navCtrl.navigateBack(defaultHref);
ev.preventDefault();
}
}
}