From 376f12050229f4d50d727b1a1db553d535d44d6f Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Fri, 6 Mar 2026 12:13:34 +0530 Subject: [PATCH] refactor: optimize sorting logic in DocumentsSidebar by utilizing refs for current sort state, enhancing performance and clarity --- .../layout/ui/sidebar/DocumentsSidebar.tsx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx index c397c91d2..0451f8824 100644 --- a/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx +++ b/surfsense_web/components/layout/ui/sidebar/DocumentsSidebar.tsx @@ -270,15 +270,24 @@ export function DocumentsSidebar({ open, onOpenChange }: DocumentsSidebarProps) [deleteDocumentMutation, isSearchMode, t] ); + const sortKeyRef = useRef(sortKey); + const sortDescRef = useRef(sortDesc); + sortKeyRef.current = sortKey; + sortDescRef.current = sortDesc; + const handleSortChange = useCallback((key: SortKey) => { - setSortKey((currentKey) => { - if (currentKey === key) { - setSortDesc((v) => !v); - return currentKey; - } + const currentKey = sortKeyRef.current; + const currentDesc = sortDescRef.current; + + if (currentKey === key && currentDesc) { + setSortKey("created_at"); + setSortDesc(true); + } else if (currentKey === key) { + setSortDesc(true); + } else { + setSortKey(key); setSortDesc(false); - return key; - }); + } }, []); useEffect(() => {