| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | import React, { useState } from 'react'import { RiArrowRightSLine } from '@remixicon/react'import FileImageRender from './file-image-render'import FileTypeIcon from './file-type-icon'import FileItem from './file-uploader-in-attachment/file-item'import type { FileEntity } from './types'import {  getFileAppearanceType,} from './utils'import Tooltip from '@/app/components/base/tooltip'import { SupportUploadFileTypes } from '@/app/components/workflow/types'import cn from '@/utils/classnames'type Props = {  fileList: FileEntity[]}const FileListInLog = ({ fileList }: Props) => {  const [expanded, setExpanded] = useState(false)  if (!fileList.length)    return null  return (    <div className={cn('border-t border-divider-subtle px-3 py-2', expanded && 'py-3')}>      <div className='flex justify-between gap-1'>        {expanded && (          <div></div>        )}        {!expanded && (          <div className='flex'>            {fileList.map((file) => {              const { id, name, type, supportFileType, base64Url, url } = file              const isImageFile = supportFileType === SupportUploadFileTypes.image              return (                <>                  {isImageFile && (                    <Tooltip                      popupContent={name}                    >                      <div key={id}>                        <FileImageRender                          className='w-8 h-8'                          imageUrl={base64Url || url || ''}                        />                      </div>                    </Tooltip>                  )}                  {!isImageFile && (                    <Tooltip                      popupContent={name}                    >                      <div key={id} className='p-1.5 rounded-md bg-components-panel-on-panel-item-bg border-[0.5px] border-components-panel-border shadow-xs'>                        <FileTypeIcon                          type={getFileAppearanceType(name, type)}                          size='md'                        />                      </div>                    </Tooltip>                  )}                </>              )            })}          </div>        )}        <div className='flex items-center gap-1 cursor-pointer' onClick={() => setExpanded(!expanded)}>          {!expanded && <div className='text-text-tertiary system-xs-medium-uppercase'>DETAIL</div>}          <RiArrowRightSLine className={cn('w-4 h-4 text-text-tertiary', expanded && 'rotate-90')} />        </div>      </div>      {expanded && (        <div className='flex flex-col gap-1'>          {fileList.map(file => (            <FileItem              key={file.id}              file={file}              showDeleteAction={false}              showDownloadAction            />          ))}        </div>      )}    </div>  )}export default FileListInLog
 |