import React, { useMemo } from 'react'; import { ModalBody, Box, useTheme } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import type { SearchDataResponseItemType } from '@fastgpt/global/core/dataset/type'; import QuoteItem from '../core/dataset/QuoteItem'; import RawSourceBox from '../core/dataset/RawSourceBox'; const QuoteModal = ({ rawSearch = [], onClose, showDetail, metadata }: { rawSearch: SearchDataResponseItemType[]; onClose: () => void; showDetail: boolean; metadata?: { collectionId: string; sourceId?: string; sourceName: string; }; }) => { const { t } = useTranslation(); const filterResults = useMemo( () => metadata ? rawSearch.filter( (item) => item.collectionId === metadata.collectionId && item.sourceId === metadata.sourceId ) : rawSearch, [metadata, rawSearch] ); return ( <> {metadata ? ( ) : ( <>{t('core.chat.Quote Amount', { amount: rawSearch.length })} )} {t('core.chat.quote.Quote Tip')} } > ); }; export default QuoteModal; export const QuoteList = React.memo(function QuoteList({ rawSearch = [], showDetail }: { rawSearch: SearchDataResponseItemType[]; showDetail: boolean; }) { const theme = useTheme(); return ( <> {rawSearch.map((item, i) => ( ))} ); });