'use client' import type { FC } from 'react' import type { LLMGenerationItem } from '@/types/workflow' import { useTranslation } from 'react-i18next' import GenerationContent from '@/app/components/base/chat/chat/answer/generation-content' import LoadingAnim from '@/app/components/base/chat/chat/loading-anim' import { FileList } from '@/app/components/base/file-uploader' import { ImageIndentLeft } from '@/app/components/base/icons/src/vender/line/editor' import { Markdown } from '@/app/components/base/markdown' import StatusContainer from '@/app/components/workflow/run/status-container' type ResultTextProps = { isRunning?: boolean isPaused?: boolean outputs?: any llmGenerationItems?: LLMGenerationItem[] error?: string onClick?: () => void allFiles?: any[] } const ResultText: FC = ({ isRunning, isPaused, outputs, llmGenerationItems, error, onClick, allFiles, }) => { const { t } = useTranslation() const generationContentRenderIsUsed = llmGenerationItems?.length && llmGenerationItems.some((item) => { return item.type === 'tool' || item.type === 'thought' }) return (
{isRunning && !outputs && (
)} {!isRunning && error && (
{error}
)} {!isPaused && !isRunning && !outputs && !error && !allFiles?.length && (
{t('resultEmpty.title', { ns: 'runLog' })}
{t('resultEmpty.tipLeft', { ns: 'runLog' })} {t('resultEmpty.link', { ns: 'runLog' })} {t('resultEmpty.tipRight', { ns: 'runLog' })}
)} {(outputs || !!allFiles?.length) && ( <> {outputs && !generationContentRenderIsUsed && (
)} { generationContentRenderIsUsed && (
) } {!!allFiles?.length && allFiles.map(item => (
{item.varName}
))} )}
) } export default ResultText