Skip to content

Commit 1d78f78

Browse files
committed
feat(popover): background dismiss, escape dismiss
background dismiss, escape dismiss closes #6817
1 parent 2be96f2 commit 1d78f78

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/components/popover/popover.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import {Component, ViewChild, ViewContainerRef, ComponentResolver} from '@angular/core';
2-
import {Renderer, ElementRef} from '@angular/core';
1+
import {Component, ComponentResolver, ElementRef, HostListener, Renderer, ViewChild, ViewContainerRef} from '@angular/core';
32

43
import {addSelector} from '../../config/bootstrap';
54
import {Animation} from '../../animations/animation';
65
import {Transition, TransitionOptions} from '../../transitions/transition';
76
import {Config} from '../../config/config';
87
import {NavParams} from '../nav/nav-params';
98
import {Platform} from '../../platform/platform';
9+
import {Key} from '../../util/key';
1010
import {isPresent, isUndefined, isDefined} from '../../util/util';
1111
import {nativeRaf, CSS} from '../../util/dom';
1212
import {ViewController} from '../nav/view-controller';
@@ -204,7 +204,7 @@ class PopoverCmp {
204204
});
205205
}
206206

207-
ionViewDidEnter() {
207+
ngAfterViewInit() {
208208
let activeElement: any = document.activeElement;
209209
if (document.activeElement) {
210210
activeElement.blur();
@@ -226,6 +226,13 @@ class PopoverCmp {
226226
this.dismiss('backdrop');
227227
}
228228
}
229+
230+
@HostListener('body:keyup', ['$event'])
231+
private _keyUp(ev: KeyboardEvent) {
232+
if (this.enabled && this._viewCtrl.isLast() && ev.keyCode === Key.ESCAPE ) {
233+
this.bdClick();
234+
}
235+
}
229236
}
230237

231238
export interface PopoverOptions {

0 commit comments

Comments
 (0)