diff --git a/UI/Web/src/app/admin/import-mappings/import-mappings.component.ts b/UI/Web/src/app/admin/import-mappings/import-mappings.component.ts index e5c2db57c..563b0f041 100644 --- a/UI/Web/src/app/admin/import-mappings/import-mappings.component.ts +++ b/UI/Web/src/app/admin/import-mappings/import-mappings.component.ts @@ -34,12 +34,13 @@ import { ImportSettings } from "../../_models/import-field-mappings"; import {firstValueFrom, switchMap} from "rxjs"; -import {tap} from "rxjs/operators"; +import {map, tap} from "rxjs/operators"; import {AgeRatingPipe} from "../../_pipes/age-rating.pipe"; import {NgTemplateOutlet} from "@angular/common"; import {Router} from "@angular/router"; import {LicenseService} from "../../_services/license.service"; import {SettingsTabId} from "../../sidenav/preference-nav/preference-nav.component"; +import {toObservable, toSignal} from "@angular/core/rxjs-interop"; enum Step { Import = 0, @@ -112,6 +113,9 @@ export class ImportMappingsComponent implements OnInit { importedMappings = signal(undefined); importResult = signal(undefined); + isFileSelected = toSignal(this.uploadForm.get('files')!.valueChanges + .pipe(map((files) => !!files && files.length == 1)), {initialValue: false}); + nextButtonLabel = computed(() => { switch(this.currentStepIndex()) { case Step.Configure: @@ -247,7 +251,7 @@ export class ImportMappingsComponent implements OnInit { } this.importedMappings.set(newImport); - this.currentStepIndex.update(x=>x + 1); + this.currentStepIndex.update(x => x + 1); } private setupSettingConflicts(res: FieldMappingsImportResult) { @@ -294,11 +298,6 @@ export class ImportMappingsComponent implements OnInit { } - isFileSelected() { - const files = this.uploadForm.get('files')?.value; - return files && files.length === 1; - } - protected readonly Step = Step; protected readonly WikiLink = WikiLink; protected readonly ImportModes = ImportModes; diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts index 96fb15804..9483afdb3 100644 --- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts +++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts @@ -1571,8 +1571,6 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy { } setPageNum(pageNum: number) { - if (pageNum === this.pageNum) return; - this.pageNum = Math.max(Math.min(pageNum, this.maxPages - 1), 0); this.pageNumSubject.next({pageNum: this.pageNum, maxPages: this.maxPages}); this.cdRef.markForCheck(); diff --git a/UI/Web/src/app/user-settings/manage-reading-profiles/manage-reading-profiles.component.ts b/UI/Web/src/app/user-settings/manage-reading-profiles/manage-reading-profiles.component.ts index 3296cdebe..0db941653 100644 --- a/UI/Web/src/app/user-settings/manage-reading-profiles/manage-reading-profiles.component.ts +++ b/UI/Web/src/app/user-settings/manage-reading-profiles/manage-reading-profiles.component.ts @@ -42,7 +42,7 @@ import {SettingSwitchComponent} from "../../settings/_components/setting-switch/ import {WritingStylePipe} from "../../_pipes/writing-style.pipe"; import {ColorPickerDirective} from "ngx-color-picker"; import {NgbNav, NgbNavContent, NgbNavItem, NgbNavLinkBase, NgbNavOutlet, NgbTooltip} from "@ng-bootstrap/ng-bootstrap"; -import {catchError, filter, finalize, of, switchMap} from "rxjs"; +import {catchError, filter, of, switchMap} from "rxjs"; import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; import {LoadingComponent} from "../../shared/loading/loading.component"; import {ToastrService} from "ngx-toastr"; @@ -226,7 +226,7 @@ export class ManageReadingProfilesComponent implements OnInit { takeUntilDestroyed(this.destroyRef), tap(_ => this.savingProfile.set(true)), switchMap(_ => this.autoSave()), - finalize(() => this.savingProfile.set(false)) + tap(() => this.savingProfile.set(false)) ).subscribe(); }