diff --git a/backend/src/main/java/com/storycove/service/SolrService.java b/backend/src/main/java/com/storycove/service/SolrService.java index 09b55a8..e40e5f8 100644 --- a/backend/src/main/java/com/storycove/service/SolrService.java +++ b/backend/src/main/java/com/storycove/service/SolrService.java @@ -464,7 +464,13 @@ public class SolrService { } solrQuery.setRows(limit); + + // Sort by storyCount if available, otherwise by name solrQuery.setSort("storyCount", SolrQuery.ORDER.desc); + solrQuery.addSort("name", SolrQuery.ORDER.asc); + + // Explicitly disable faceting to avoid range faceting issues + solrQuery.setFacet(false); QueryResponse response = solrClient.query(properties.getCores().getAuthors(), solrQuery); diff --git a/frontend/src/app/library/LibraryContent.tsx b/frontend/src/app/library/LibraryContent.tsx index d4b309b..e979474 100644 --- a/frontend/src/app/library/LibraryContent.tsx +++ b/frontend/src/app/library/LibraryContent.tsx @@ -15,7 +15,7 @@ import MinimalLayout from '../../components/library/MinimalLayout'; import { useLibraryLayout } from '../../hooks/useLibraryLayout'; type ViewMode = 'grid' | 'list'; -type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastRead'; +type SortOption = 'createdAt' | 'title' | 'authorName' | 'rating' | 'wordCount' | 'lastReadAt'; export default function LibraryContent() { const router = useRouter(); @@ -29,7 +29,7 @@ export default function LibraryContent() { const [searchQuery, setSearchQuery] = useState(''); const [selectedTags, setSelectedTags] = useState([]); const [viewMode, setViewMode] = useState('list'); - const [sortOption, setSortOption] = useState('lastRead'); + const [sortOption, setSortOption] = useState('lastReadAt'); const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('desc'); const [page, setPage] = useState(0); const [totalPages, setTotalPages] = useState(1); diff --git a/frontend/src/components/library/MinimalLayout.tsx b/frontend/src/components/library/MinimalLayout.tsx index d0b5d9f..4030878 100644 --- a/frontend/src/components/library/MinimalLayout.tsx +++ b/frontend/src/components/library/MinimalLayout.tsx @@ -66,7 +66,7 @@ export default function MinimalLayout({ const getSortDisplayText = () => { const sortLabels: Record = { - lastRead: 'Last Read', + lastReadAt: 'Last Read', createdAt: 'Date Added', title: 'Title', authorName: 'Author', diff --git a/frontend/src/components/library/SidebarLayout.tsx b/frontend/src/components/library/SidebarLayout.tsx index 06dfd8f..1a92d90 100644 --- a/frontend/src/components/library/SidebarLayout.tsx +++ b/frontend/src/components/library/SidebarLayout.tsx @@ -122,8 +122,8 @@ export default function SidebarLayout({ }} className="px-2 py-1 border rounded-lg theme-card border-gray-300 dark:border-gray-600 text-xs" > - - + + @@ -226,7 +226,7 @@ export default function SidebarLayout({ onChange={(e) => onSortChange(e.target.value)} className="flex-1 px-3 py-2 border rounded-lg theme-card border-gray-300 dark:border-gray-600" > - + diff --git a/frontend/src/components/library/ToolbarLayout.tsx b/frontend/src/components/library/ToolbarLayout.tsx index a95587a..c1d1a76 100644 --- a/frontend/src/components/library/ToolbarLayout.tsx +++ b/frontend/src/components/library/ToolbarLayout.tsx @@ -110,8 +110,8 @@ export default function ToolbarLayout({ }} className="w-full px-3 py-2 border rounded-lg theme-card border-gray-300 dark:border-gray-600 max-md:text-sm" > - - + + diff --git a/solr/stories/conf/managed-schema b/solr/stories/conf/managed-schema index 7177ffa..0c9fd90 100755 --- a/solr/stories/conf/managed-schema +++ b/solr/stories/conf/managed-schema @@ -121,6 +121,9 @@ + + +