refactor: streamline debounced search implementation and enhance document type filter behavior

This commit is contained in:
DESKTOP-RTLN3BA\$punk 2025-06-05 23:20:48 -07:00
parent b356569854
commit 57c9bcbccb

View file

@ -436,24 +436,17 @@ const ChatPage = () => {
const [documentsPerPage] = useState(10); const [documentsPerPage] = useState(10);
const { documents, loading: isLoadingDocuments, error: documentsError } = useDocuments(Number(search_space_id)); const { documents, loading: isLoadingDocuments, error: documentsError } = useDocuments(Number(search_space_id));
// Custom hook for debounced search // Debounced search effect (proper implementation)
const useDebounce = (value: string, delay: number) => {
useEffect(() => { useEffect(() => {
const handler = setTimeout(() => { const handler = setTimeout(() => {
setDebouncedDocumentFilter(value); setDebouncedDocumentFilter(documentFilter);
setDocumentsPage(1); // Reset page when search changes setDocumentsPage(1); // Reset page when search changes
}, delay); }, 300);
return () => { return () => {
clearTimeout(handler); clearTimeout(handler);
}; };
}, [value, delay]); }, [documentFilter]);
return debouncedDocumentFilter;
};
// Use debounced search
useDebounce(documentFilter, 300);
// Memoized filtered and paginated documents // Memoized filtered and paginated documents
const filteredDocuments = useMemo(() => { const filteredDocuments = useMemo(() => {
@ -1294,7 +1287,10 @@ const ChatPage = () => {
{/* Document Type Filter */} {/* Document Type Filter */}
<DocumentTypeFilter <DocumentTypeFilter
value={documentTypeFilter} value={documentTypeFilter}
onChange={setDocumentTypeFilter} onChange={(newType) => {
setDocumentTypeFilter(newType);
setDocumentsPage(1); // Reset to page 1 when filter changes
}}
counts={documentTypeCounts} counts={documentTypeCounts}
/> />
</div> </div>