diff --git a/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.html b/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.html index 135850473..de9884ca6 100644 --- a/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.html +++ b/apps/red-ui/src/app/modules/dossier/components/file-actions/file-actions.component.html @@ -7,7 +7,7 @@ - +
-
{ this.reloadDossiers('set-approved'); diff --git a/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts b/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts new file mode 100644 index 000000000..0f7b5a134 --- /dev/null +++ b/apps/red-ui/src/app/modules/shared/directives/long-press.directive.ts @@ -0,0 +1,33 @@ +import { Directive, EventEmitter, HostListener, Output } from '@angular/core'; + +const LONG_PRESS_TIMEOUT = 500; + +export interface LongPressEvent { + touchEnd?: boolean; +} + +@Directive({ + selector: '[redactionLongPress]' +}) +export class LongPressDirective { + private _touchTimeout: any; + + @Output() longPress = new EventEmitter(); + + constructor() {} + + @HostListener('window:keydown.control') + @HostListener('window:keydown.meta') + touchStart() { + this._touchTimeout = setTimeout(() => { + this.longPress.emit({}); + }, LONG_PRESS_TIMEOUT); + } + + @HostListener('window:keyup.control') + @HostListener('window:keyup.meta') + touchEnd() { + clearTimeout(this._touchTimeout); + this.longPress.emit({ touchEnd: true }); + } +} diff --git a/apps/red-ui/src/app/modules/shared/shared.module.ts b/apps/red-ui/src/app/modules/shared/shared.module.ts index 74c3200a4..381b6d0bb 100644 --- a/apps/red-ui/src/app/modules/shared/shared.module.ts +++ b/apps/red-ui/src/app/modules/shared/shared.module.ts @@ -24,6 +24,7 @@ import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor'; import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component'; import { PageHeaderComponent } from './components/page-header/page-header.component'; import { DatePipe } from '@shared/pipes/date.pipe'; +import { LongPressDirective } from '@shared/directives/long-press.directive'; const buttons = [FileDownloadBtnComponent, UserButtonComponent]; @@ -44,7 +45,7 @@ const components = [ ...buttons ]; -const utils = [DatePipe, NavigateLastDossiersScreenDirective]; +const utils = [DatePipe, NavigateLastDossiersScreenDirective, LongPressDirective]; const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, ReactiveFormsModule, CommonUiModule];