mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* fix(client): resolve errors * feat(client): migrate to output signal * feat(client): migrate to host propertypull/6960/head^2
committed by
GitHub
1 changed files with 15 additions and 9 deletions
@ -1,28 +1,34 @@ |
|||
import { Directive, EventEmitter, HostListener, Output } from '@angular/core'; |
|||
import { Directive, output } from '@angular/core'; |
|||
|
|||
@Directive({ |
|||
host: { |
|||
'(dragenter)': 'onDragEnter($event)', |
|||
'(dragover)': 'onDragOver($event)', |
|||
'(drop)': 'onDrop($event)' |
|||
}, |
|||
selector: '[gfFileDrop]' |
|||
}) |
|||
export class GfFileDropDirective { |
|||
@Output() filesDropped = new EventEmitter<FileList>(); |
|||
public readonly filesDropped = output<FileList>(); |
|||
|
|||
@HostListener('dragenter', ['$event']) onDragEnter(event: DragEvent) { |
|||
public onDragEnter(event: DragEvent) { |
|||
event.preventDefault(); |
|||
event.stopPropagation(); |
|||
} |
|||
|
|||
@HostListener('dragover', ['$event']) onDragOver(event: DragEvent) { |
|||
public onDragOver(event: DragEvent) { |
|||
event.preventDefault(); |
|||
event.stopPropagation(); |
|||
} |
|||
|
|||
@HostListener('drop', ['$event']) onDrop(event: DragEvent) { |
|||
public onDrop(event: DragEvent) { |
|||
event.preventDefault(); |
|||
event.stopPropagation(); |
|||
|
|||
if (event.dataTransfer) { |
|||
// Prevent the browser's default behavior for handling the file drop
|
|||
event.dataTransfer.dropEffect = 'copy'; |
|||
|
|||
this.filesDropped.emit(event.dataTransfer.files); |
|||
} |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue