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;