|
@@ -1,4 +1,13 @@
|
|
-import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
|
|
|
|
+import {
|
|
|
|
+ Component,
|
|
|
|
+ Input,
|
|
|
|
+ Output,
|
|
|
|
+ EventEmitter,
|
|
|
|
+ HostListener,
|
|
|
|
+ OnInit,
|
|
|
|
+ Renderer2,
|
|
|
|
+ ElementRef,
|
|
|
|
+} from '@angular/core';
|
|
import { DataService } from 'src/services/data/data.service';
|
|
import { DataService } from 'src/services/data/data.service';
|
|
import { TranslatorService } from 'src/services/translator/translator.service';
|
|
import { TranslatorService } from 'src/services/translator/translator.service';
|
|
|
|
|
|
@@ -8,6 +17,7 @@ import { TranslatorService } from 'src/services/translator/translator.service';
|
|
styleUrls: ['./character-card.component.scss'],
|
|
styleUrls: ['./character-card.component.scss'],
|
|
})
|
|
})
|
|
export class CharacterCardComponent {
|
|
export class CharacterCardComponent {
|
|
|
|
+ @Input() isTouchscreen: boolean = false;
|
|
@Input() character: string = '';
|
|
@Input() character: string = '';
|
|
@Output() delete: EventEmitter<string> = new EventEmitter<string>();
|
|
@Output() delete: EventEmitter<string> = new EventEmitter<string>();
|
|
@Output() select: EventEmitter<string> = new EventEmitter<string>();
|
|
@Output() select: EventEmitter<string> = new EventEmitter<string>();
|
|
@@ -15,10 +25,14 @@ export class CharacterCardComponent {
|
|
public image: any;
|
|
public image: any;
|
|
public races: any;
|
|
public races: any;
|
|
public classes: any;
|
|
public classes: any;
|
|
|
|
+ private timeout: any;
|
|
|
|
+ private touchStartX: number = 0;
|
|
|
|
|
|
constructor(
|
|
constructor(
|
|
private dataAccessor: DataService,
|
|
private dataAccessor: DataService,
|
|
private translator: TranslatorService,
|
|
private translator: TranslatorService,
|
|
|
|
+ private renderer: Renderer2,
|
|
|
|
+ private el: ElementRef,
|
|
) {
|
|
) {
|
|
this.races = this.translator.races;
|
|
this.races = this.translator.races;
|
|
this.classes = this.translator.classes;
|
|
this.classes = this.translator.classes;
|
|
@@ -26,8 +40,43 @@ export class CharacterCardComponent {
|
|
|
|
|
|
ngOnInit() {
|
|
ngOnInit() {
|
|
this.loadCharacterData();
|
|
this.loadCharacterData();
|
|
|
|
+ this.renderer.listen(
|
|
|
|
+ this.el.nativeElement,
|
|
|
|
+ 'touchstart',
|
|
|
|
+ this.onTouchStart.bind(this),
|
|
|
|
+ );
|
|
|
|
+ this.renderer.listen(
|
|
|
|
+ this.el.nativeElement,
|
|
|
|
+ 'touchend',
|
|
|
|
+ this.onTouchEnd.bind(this),
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ onTouchStart(event: any) {
|
|
|
|
+ this.touchStartX = event.touches[0].clientX;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ onTouchEnd(event: any) {
|
|
|
|
+ const touchEndX = event.changedTouches[0].clientX;
|
|
|
|
+ if (touchEndX > this.touchStartX + 100) {
|
|
|
|
+ document.getElementById('delete-button')?.classList.add('show');
|
|
|
|
+ } else if (touchEndX < this.touchStartX - 100) {
|
|
|
|
+ document.getElementById('delete-button')?.classList.remove('show');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // @HostListener('touchstart', ['$event'])
|
|
|
|
+ // onTouchStart(event: any) {
|
|
|
|
+ // this.timeout = setTimeout(() => {
|
|
|
|
+ // window.alert('Long press detected');
|
|
|
|
+ // }, 1000); // 500 milliseconds
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // @HostListener('touchend')
|
|
|
|
+ // onTouchEnd() {
|
|
|
|
+ // clearTimeout(this.timeout);
|
|
|
|
+ // }
|
|
|
|
+
|
|
public loadCharacterData(): void {
|
|
public loadCharacterData(): void {
|
|
console.log(this.characterData);
|
|
console.log(this.characterData);
|
|
this.dataAccessor
|
|
this.dataAccessor
|