From 57c9bcbccba692875bc3a5bcb58f2fef8d15e500 Mon Sep 17 00:00:00 2001 From: "DESKTOP-RTLN3BA\\$punk" Date: Thu, 5 Jun 2025 23:20:48 -0700 Subject: [PATCH] refactor: streamline debounced search implementation and enhance document type filter behavior --- .../researcher/[chat_id]/page.tsx | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/surfsense_web/app/dashboard/[search_space_id]/researcher/[chat_id]/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/researcher/[chat_id]/page.tsx index 9fea403..6be175e 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/researcher/[chat_id]/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/researcher/[chat_id]/page.tsx @@ -436,24 +436,17 @@ const ChatPage = () => { const [documentsPerPage] = useState(10); const { documents, loading: isLoadingDocuments, error: documentsError } = useDocuments(Number(search_space_id)); - // Custom hook for debounced search - const useDebounce = (value: string, delay: number) => { - useEffect(() => { - const handler = setTimeout(() => { - setDebouncedDocumentFilter(value); - setDocumentsPage(1); // Reset page when search changes - }, delay); + // Debounced search effect (proper implementation) + useEffect(() => { + const handler = setTimeout(() => { + setDebouncedDocumentFilter(documentFilter); + setDocumentsPage(1); // Reset page when search changes + }, 300); - return () => { - clearTimeout(handler); - }; - }, [value, delay]); - - return debouncedDocumentFilter; - }; - - // Use debounced search - useDebounce(documentFilter, 300); + return () => { + clearTimeout(handler); + }; + }, [documentFilter]); // Memoized filtered and paginated documents const filteredDocuments = useMemo(() => { @@ -1291,12 +1284,15 @@ const ChatPage = () => { )} - {/* Document Type Filter */} - + {/* Document Type Filter */} + { + setDocumentTypeFilter(newType); + setDocumentsPage(1); // Reset to page 1 when filter changes + }} + counts={documentTypeCounts} + /> {/* Results Summary */}