import { useMemo } from 'react'; import MinimalMessagesWrapper from '~/components/Chat/Messages/MinimalMessages'; import SearchMessage from '~/components/Chat/Messages/SearchMessage'; import { useSearchContext, useFileMapContext } from '~/Providers'; import { useNavScrolling, useLocalize } from '~/hooks'; import { buildTree } from '~/utils'; export default function Search() { const localize = useLocalize(); const fileMap = useFileMapContext(); const { searchQuery, searchQueryRes } = useSearchContext(); const { containerRef } = useNavScrolling({ setShowLoading: () => ({}), hasNextPage: searchQueryRes?.hasNextPage, fetchNextPage: searchQueryRes?.fetchNextPage, isFetchingNextPage: searchQueryRes?.isFetchingNextPage, }); const messages = useMemo(() => { const msgs = searchQueryRes?.data?.pages.flatMap((page) => page.messages) || []; const dataTree = buildTree({ messages: msgs, fileMap }); return dataTree?.length === 0 ? null : dataTree ?? null; }, [fileMap, searchQueryRes?.data?.pages]); if (!searchQuery || !searchQueryRes?.data) { return null; } return ( {(messages && messages?.length == 0) || messages === null ? (
{localize('com_ui_nothing_found')}
) : ( messages?.map((message) => ) )}
); }