mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-15 16:38:17 +08:00
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
'use client'
|
|
import type { FC } from 'react'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { ImageIndentLeft } from '@/app/components/base/icons/src/vender/line/editor'
|
|
import { Markdown } from '@/app/components/base/markdown'
|
|
import LoadingAnim from '@/app/components/base/chat/chat/loading-anim'
|
|
import StatusContainer from '@/app/components/workflow/run/status-container'
|
|
import { FileList } from '@/app/components/base/file-uploader'
|
|
import type { FileEntity } from '@/app/components/base/file-uploader/types'
|
|
|
|
type ResultTextProps = {
|
|
isRunning?: boolean
|
|
outputs?: any
|
|
error?: string
|
|
onClick?: () => void
|
|
allFiles?: FileEntity[]
|
|
}
|
|
|
|
const ResultText: FC<ResultTextProps> = ({
|
|
isRunning,
|
|
outputs,
|
|
error,
|
|
onClick,
|
|
allFiles,
|
|
}) => {
|
|
const { t } = useTranslation()
|
|
return (
|
|
<div className='bg-background-section-burn py-2'>
|
|
{isRunning && !outputs && (
|
|
<div className='pt-4 pl-[26px]'>
|
|
<LoadingAnim type='text' />
|
|
</div>
|
|
)}
|
|
{!isRunning && error && (
|
|
<div className='px-4'>
|
|
<StatusContainer status='failed'>
|
|
{error}
|
|
</StatusContainer>
|
|
</div>
|
|
)}
|
|
{!isRunning && !outputs && !error && (
|
|
<div className='mt-[120px] px-4 py-2 flex flex-col items-center text-[13px] leading-[18px] text-gray-500'>
|
|
<ImageIndentLeft className='w-6 h-6 text-gray-400' />
|
|
<div className='mr-2'>{t('runLog.resultEmpty.title')}</div>
|
|
<div>
|
|
{t('runLog.resultEmpty.tipLeft')}
|
|
<span onClick={onClick} className='cursor-pointer text-primary-600'>{t('runLog.resultEmpty.link')}</span>
|
|
{t('runLog.resultEmpty.tipRight')}
|
|
</div>
|
|
</div>
|
|
)}
|
|
{outputs && (
|
|
<div className='px-4 py-2'>
|
|
<Markdown content={outputs} />
|
|
{!!allFiles?.length && (
|
|
<FileList
|
|
files={allFiles}
|
|
showDeleteAction={false}
|
|
showDownloadAction
|
|
canPreview
|
|
/>
|
|
)}
|
|
</div>
|
|
)}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default ResultText
|