mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-07-08 21:15:09 +00:00
Direct signal-backed file drop
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<div [class.pe-none]="fileIsOver">
|
||||
<div [class.pe-none]="fileIsOver()">
|
||||
<ng-content select="[content]"></ng-content>
|
||||
</div>
|
||||
|
||||
<div class="global-dropzone-overlay position-fixed top-0 start-0 bottom-0 end-0 text-center pe-none" [class.active]="fileIsOver && !hidden">
|
||||
<div class="global-dropzone-overlay position-fixed top-0 start-0 bottom-0 end-0 text-center pe-none" [class.active]="fileIsOver() && !hidden()">
|
||||
<h2 class="pe-none position-absolute top-50 start-50 translate-middle" i18n>Drop files to begin upload</h2>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Component, HostListener, inject } from '@angular/core'
|
||||
import { Component, HostListener, inject, signal } from '@angular/core'
|
||||
import {
|
||||
PermissionAction,
|
||||
PermissionsService,
|
||||
@@ -21,8 +21,8 @@ export class FileDropComponent {
|
||||
private permissionsService = inject(PermissionsService)
|
||||
|
||||
private fileLeaveTimeoutID: any
|
||||
fileIsOver: boolean = false
|
||||
hidden: boolean = true
|
||||
fileIsOver = signal<boolean>(false)
|
||||
hidden = signal<boolean>(true)
|
||||
|
||||
public get dragDropEnabled(): boolean {
|
||||
return (
|
||||
@@ -42,9 +42,9 @@ export class FileDropComponent {
|
||||
this.settings.globalDropzoneActive = true
|
||||
// allows transition
|
||||
setTimeout(() => {
|
||||
this.fileIsOver = true
|
||||
this.fileIsOver.set(true)
|
||||
}, 1)
|
||||
this.hidden = false
|
||||
this.hidden.set(false)
|
||||
// stop fileLeave timeout
|
||||
clearTimeout(this.fileLeaveTimeoutID)
|
||||
}
|
||||
@@ -61,10 +61,10 @@ export class FileDropComponent {
|
||||
const ms = immediate ? 0 : 500
|
||||
|
||||
this.fileLeaveTimeoutID = setTimeout(() => {
|
||||
this.fileIsOver = false
|
||||
this.fileIsOver.set(false)
|
||||
// await transition completed
|
||||
setTimeout(() => {
|
||||
this.hidden = true
|
||||
this.hidden.set(true)
|
||||
}, 150)
|
||||
}, ms)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user