import { Box, Button, Card, CardBody, CardControls, CardHeader, CardTitle, FramedIcon, Skeleton } from '@rocket.chat/fuselage'; import type { ReactElement } from 'react'; import { useId } from 'react'; import { useTranslation } from 'react-i18next'; import MarkdownText from '../../components/MarkdownText'; export type SearchAnswerPanelProps = { answer?: string; provider?: { name: string; model: string }; isLoading: boolean; error?: unknown; disabled: boolean; emptyReason: string; onGenerate: () => void; }; const SearchAnswerPanel = ({ answer, provider, isLoading, error, disabled, emptyReason, onGenerate, }: SearchAnswerPanelProps): ReactElement => { const { t } = useTranslation(); const titleId = useId(); let content: ReactElement; if (isLoading) { content = ( ); } else if (answer) { content = ; } else { content = ( {disabled ? emptyReason : t('Search_AI_answer_ready')} ); } return ( {t('Search_AI_answer')} {provider && ( {t('Search_AI_answer_provider', { provider: provider.name, model: provider.model })} )} {error && !isLoading ? ( {t('Search_AI_answer_error')} ) : ( content )} ); }; export default SearchAnswerPanel;