Fixed a circular reference. Touched up long press on card items for mobile devices to now be so sensitive for triggering selection code. (#609)

This commit is contained in:
Joseph Milazzo 2021-09-30 07:11:18 -07:00 committed by GitHub
parent 4c536bade6
commit 04e1051ec9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 16 deletions

View File

@ -51,7 +51,7 @@ export class AccountService implements OnDestroy {
const user = response;
if (user) {
this.setCurrentUser(user);
this.messageHub.createHubConnection(user);
this.messageHub.createHubConnection(user, this.hasAdminRole(user));
this.presenceHub.createHubConnection(user);
}
}),

View File

@ -4,14 +4,12 @@ import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { User } from '@sentry/angular';
import { ToastrService } from 'ngx-toastr';
import { ReplaySubject } from 'rxjs';
import { take } from 'rxjs/operators';
import { environment } from 'src/environments/environment';
import { UpdateNotificationModalComponent } from '../shared/update-notification/update-notification-modal.component';
import { RefreshMetadataEvent } from '../_models/events/refresh-metadata-event';
import { ScanLibraryEvent } from '../_models/events/scan-library-event';
import { ScanSeriesEvent } from '../_models/events/scan-series-event';
import { SeriesAddedEvent } from '../_models/events/series-added-event';
import { AccountService } from './account.service';
export enum EVENTS {
UpdateAvailable = 'UpdateAvailable',
@ -44,15 +42,13 @@ export class MessageHubService {
isAdmin: boolean = false;
constructor(private modalService: NgbModal, private toastr: ToastrService, private accountService: AccountService) {
this.accountService.currentUser$.pipe(take(1)).subscribe(user => {
if (user) {
this.isAdmin = this.accountService.hasAdminRole(user);
}
});
constructor(private modalService: NgbModal, private toastr: ToastrService) {
}
createHubConnection(user: User) {
createHubConnection(user: User, isAdmin: boolean) {
this.isAdmin = isAdmin;
this.hubConnection = new HubConnectionBuilder()
.withUrl(this.hubUrl + 'messages', {
accessTokenFactory: () => user.token
@ -82,9 +78,6 @@ export class MessageHubService {
payload: resp.body
});
this.scanLibrary.emit(resp.body);
// if ((resp.body as ScanLibraryEvent).stage === 'complete') {
// this.toastr.
// }
});
this.hubConnection.on(EVENTS.SeriesAdded, resp => {

View File

@ -47,7 +47,7 @@ export class AppComponent implements OnInit {
if (user) {
this.navService.setDarkMode(user.preferences.siteDarkMode);
this.messageHub.createHubConnection(user);
this.messageHub.createHubConnection(user, this.accountService.hasAdminRole(user));
this.presenceHub.createHubConnection(user);
this.libraryService.getLibraryNames().pipe(take(1)).subscribe(() => {/* No Operation */});
} else {

View File

@ -120,14 +120,31 @@ export class CardItemComponent implements OnInit, OnDestroy {
prevTouchTime: number = 0;
prevOffset: number = 0;
@HostListener('touchstart', ['$event'])
onTouchStart(event: TouchEvent) {
const verticalOffset = (window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop || 0);
this.prevTouchTime = event.timeStamp;
this.prevOffset = verticalOffset;
}
@HostListener('touchend', ['$event'])
onTouchEnd(event: TouchEvent) {
if (event.timeStamp - this.prevTouchTime >= 200) {
const delta = event.timeStamp - this.prevTouchTime;
const verticalOffset = (window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop || 0);
if (verticalOffset != this.prevOffset) {
this.prevTouchTime = 0;
return;
}
if (delta >= 300 && delta <= 1000) {
this.handleSelection();
event.stopPropagation();
event.preventDefault();

View File

@ -41,7 +41,6 @@ export class ReadingListsComponent implements OnInit {
}
performAction(action: ActionItem<any>, readingList: ReadingList) {
// TODO: Try to move performAction into the actionables component. (have default handler in the component, allow for overridding to pass additional context)
if (typeof action.callback === 'function') {
action.callback(action.action, readingList);
}