Fixed fileDrop overlay no longer visible when dragging files
This commit is contained in:
parent
3341f8c876
commit
4e752cbe94
@ -5,7 +5,6 @@ import { ComponentPortal } from '@angular/cdk/portal';
|
|||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class FileDropOverlayService {
|
export class FileDropOverlayService {
|
||||||
private _mouseIn = false;
|
|
||||||
private readonly _dropOverlayRef: OverlayRef;
|
private readonly _dropOverlayRef: OverlayRef;
|
||||||
|
|
||||||
constructor(private readonly _overlay: Overlay, private readonly _injector: Injector) {
|
constructor(private readonly _overlay: Overlay, private readonly _injector: Injector) {
|
||||||
@ -15,26 +14,18 @@ export class FileDropOverlayService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
dragListener = e => {
|
dragEnter = e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (this._mouseIn) {
|
this.openFileDropOverlay();
|
||||||
this.openFileDropOverlay();
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
mouseIn = e => {
|
|
||||||
|
dragLeave = e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
this._mouseIn = true;
|
if (e.relatedTarget == null) {
|
||||||
return false;
|
|
||||||
};
|
|
||||||
mouseOut = e => {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
if (e.toElement == null && e.relatedTarget == null) {
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this._mouseIn = false;
|
|
||||||
this.closeFileDropOverlay();
|
this.closeFileDropOverlay();
|
||||||
}, 250);
|
}, 250);
|
||||||
}
|
}
|
||||||
@ -42,15 +33,13 @@ export class FileDropOverlayService {
|
|||||||
};
|
};
|
||||||
|
|
||||||
initFileDropHandling() {
|
initFileDropHandling() {
|
||||||
document.getElementsByTagName('body')[0].addEventListener('dragenter', this.dragListener, false);
|
document.getElementsByTagName('body')[0].addEventListener('dragenter', this.dragEnter, false);
|
||||||
document.getElementsByTagName('body')[0].addEventListener('mouseenter', this.mouseIn, false);
|
document.getElementsByTagName('body')[0].addEventListener('dragleave', this.dragLeave, false);
|
||||||
document.getElementsByTagName('body')[0].addEventListener('mouseout', this.mouseOut, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanupFileDropHandling() {
|
cleanupFileDropHandling() {
|
||||||
document.getElementsByTagName('body')[0].removeEventListener('dragenter', this.dragListener, false);
|
document.getElementsByTagName('body')[0].removeEventListener('dragenter', this.dragEnter, false);
|
||||||
document.getElementsByTagName('body')[0].removeEventListener('mouseenter', this.mouseIn, false);
|
document.getElementsByTagName('body')[0].removeEventListener('dragleave', this.dragLeave, false);
|
||||||
document.getElementsByTagName('body')[0].removeEventListener('mouseout', this.mouseOut, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openFileDropOverlay() {
|
openFileDropOverlay() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user