Fixes, new sort option "Last Completed"

This commit is contained in:
Stefan Hardegger
2026-06-18 12:53:22 +02:00
parent a2ed2f7b79
commit 7358a8ee4e
18 changed files with 127 additions and 27 deletions

View File

@@ -16,7 +16,7 @@ import { useLibraryLayout } from '../../hooks/useLibraryLayout';
import { useLibraryFilters, clearLibraryFilters } from '../../hooks/useLibraryFilters';
type ViewMode = 'grid' | 'list';
type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastReadAt';
type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastReadAt' | 'lastCompletedAt';
export default function LibraryContent() {
const router = useRouter();

View File

@@ -67,6 +67,7 @@ export default function MinimalLayout({
const getSortDisplayText = () => {
const sortLabels: Record<string, string> = {
lastReadAt: 'Last Read',
lastCompletedAt: 'Last Completed',
createdAt: 'Date Added',
title: 'Title',
authorName: 'Author',

View File

@@ -124,6 +124,7 @@ export default function SidebarLayout({
>
<option value="lastReadAt_desc">Last Read </option>
<option value="lastReadAt_asc">Last Read </option>
<option value="lastCompletedAt_desc">Last Completed </option>
<option value="createdAt_desc">Date Added </option>
<option value="createdAt_asc">Date Added </option>
<option value="title_asc">Title </option>
@@ -227,6 +228,7 @@ export default function SidebarLayout({
className="flex-1 px-3 py-2 border rounded-lg theme-card border-gray-300 dark:border-gray-600"
>
<option value="lastReadAt">Last Read</option>
<option value="lastCompletedAt">Last Completed</option>
<option value="createdAt">Date Added</option>
<option value="title">Title</option>
<option value="authorName">Author</option>

View File

@@ -112,6 +112,7 @@ export default function ToolbarLayout({
>
<option value="lastReadAt_desc">Sort: Last Read </option>
<option value="lastReadAt_asc">Sort: Last Read </option>
<option value="lastCompletedAt_desc">Sort: Last Completed </option>
<option value="createdAt_desc">Sort: Date Added </option>
<option value="createdAt_asc">Sort: Date Added </option>
<option value="title_asc">Sort: Title </option>

View File

@@ -18,6 +18,7 @@ export interface Story {
readingPosition?: number;
readingProgressPercentage?: number; // Pre-calculated percentage (0-100) from backend
lastReadAt?: string;
lastCompletedAt?: string;
createdAt: string;
updatedAt: string;
}

File diff suppressed because one or more lines are too long