'use client' import type { FC } from 'react' import { useTranslation } from 'react-i18next' import { ChatContextProvider } from '@/app/components/base/chat/chat/context-provider' 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 error?: string onClick?: () => void allFiles?: any[] } const ResultText: FC = ({ isRunning, isPaused, outputs, error, onClick, allFiles, }) => { const { t } = useTranslation() return (
{isRunning && !outputs && (
)} {!isRunning && error && (
{error}
)} {!isPaused && !isRunning && !outputs && !error && !allFiles?.length && (
{t(($) => $['resultEmpty.title'], { ns: 'runLog' })}
{t(($) => $['resultEmpty.tipLeft'], { ns: 'runLog' })} {t(($) => $['resultEmpty.tipRight'], { ns: 'runLog' })}
)} {(outputs || !!allFiles?.length) && ( <> {outputs && (
{/* ThinkBlock's timer reads isResponding from ChatContext, which the run panel otherwise lacks. */}
)} {!!allFiles?.length && allFiles.map((item) => (
{item.varName}
))} )}
) } export default ResultText