diff --git a/lightrag_webui/src/features/DocumentManager.tsx b/lightrag_webui/src/features/DocumentManager.tsx index 3e065ddf..2ce3daee 100644 --- a/lightrag_webui/src/features/DocumentManager.tsx +++ b/lightrag_webui/src/features/DocumentManager.tsx @@ -183,7 +183,7 @@ export default function DocumentManager() { const setDocumentsPageSize = useSettingsStore.use.setDocumentsPageSize() // New pagination state - const [, setCurrentPageDocs] = useState([]) + const [currentPageDocs, setCurrentPageDocs] = useState([]) const [pagination, setPagination] = useState({ page: 1, page_size: documentsPageSize, @@ -292,6 +292,16 @@ export default function DocumentManager() { type DocStatusWithStatus = DocStatusResponse & { status: DocStatus }; const filteredAndSortedDocs = useMemo(() => { + // Use currentPageDocs directly if available (from paginated API) + // This preserves the backend's sort order and prevents status grouping + if (currentPageDocs && currentPageDocs.length > 0) { + return currentPageDocs.map(doc => ({ + ...doc, + status: doc.status as DocStatus + })) as DocStatusWithStatus[]; + } + + // Fallback to legacy docs structure for backward compatibility if (!docs) return null; // Create a flat array of documents with status information @@ -324,7 +334,7 @@ export default function DocumentManager() { } return allDocuments; - }, [docs, sortField, sortDirection, statusFilter, sortDocuments]); + }, [currentPageDocs, docs, sortField, sortDirection, statusFilter, sortDocuments]); // Calculate current page selection state (after filteredAndSortedDocs is defined) const currentPageDocIds = useMemo(() => {