diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj
index 552e3cf9c..a6ba10dfc 100644
--- a/Kavita.Common/Kavita.Common.csproj
+++ b/Kavita.Common/Kavita.Common.csproj
@@ -3,7 +3,7 @@
net9.0
kavitareader.com
Kavita
- 0.8.7.8
+ 0.8.7.9
en
true
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();
}