From e86fda5894df7524e97157a01202a72bd349323d Mon Sep 17 00:00:00 2001 From: yangdx Date: Fri, 4 Apr 2025 14:49:47 +0800 Subject: [PATCH] Optimize document sorting with useCallback - Memoize sortDocuments function - Add dependencies to useCallback - Improve performance --- lightrag_webui/src/features/DocumentManager.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lightrag_webui/src/features/DocumentManager.tsx b/lightrag_webui/src/features/DocumentManager.tsx index b5e350a7..ef2db54f 100644 --- a/lightrag_webui/src/features/DocumentManager.tsx +++ b/lightrag_webui/src/features/DocumentManager.tsx @@ -167,7 +167,7 @@ export default function DocumentManager() { } // Sort documents based on current sort field and direction - const sortDocuments = (documents: DocStatusResponse[]) => { + const sortDocuments = useCallback((documents: DocStatusResponse[]) => { return [...documents].sort((a, b) => { let valueA, valueB; @@ -194,7 +194,7 @@ export default function DocumentManager() { return sortMultiplier * (valueA > valueB ? 1 : valueA < valueB ? -1 : 0); } }); - } + }, [sortField, sortDirection, showFileName]); const filteredAndSortedDocs = useMemo(() => { if (!docs) return null; @@ -223,7 +223,7 @@ export default function DocumentManager() { }, {} as DocsStatusesResponse['statuses']); return { ...filteredDocs, statuses: sortedStatuses }; - }, [docs, sortField, sortDirection, statusFilter]); + }, [docs, sortField, sortDirection, statusFilter, sortDocuments]); // Calculate document counts for each status const documentCounts = useMemo(() => {