consider series name when sorting books (#1123)

This commit is contained in:
Ruben GM
2025-09-10 13:42:48 +10:00
committed by GitHub
parent e772e271b0
commit 0b45f63f35
2 changed files with 11 additions and 2 deletions

View File

@@ -673,7 +673,15 @@ export class BookBrowserComponent implements OnInit {
const forceExpandSeries = this.shouldForceExpandSeries();
return this.headerFilter.filter(bookState).pipe(
switchMap(filtered => this.sideBarFilter.filter(filtered)),
switchMap(filtered => this.seriesCollapseFilter.filter(filtered, forceExpandSeries))
switchMap(filtered => this.seriesCollapseFilter.filter(filtered, forceExpandSeries)),
map(filtered =>
(filtered.loaded && !filtered.error)
? ({
...filtered,
books: this.sortService.applySort(filtered.books || [], this.bookSorter.selectedSort!)
})
: filtered
)
);
}

View File

@@ -8,7 +8,8 @@ import {SortDirection, SortOption} from "../model/sort.model";
export class SortService {
private readonly fieldExtractors: Record<string, (book: Book) => any> = {
title: (book) => book.metadata?.title?.toLowerCase() || null,
title: (book) => (book.seriesCount ? (book.metadata?.seriesName?.toLowerCase() || null) : null)
?? (book.metadata?.title?.toLowerCase() || null),
titleSeries: (book) => {
const title = book.metadata?.title?.toLowerCase() || '';
const series = book.metadata?.seriesName?.toLowerCase();