'use client' import React, { useMemo } from 'react' import { useTranslation } from 'react-i18next' import Loading from './loading' import type { CustomFile as File } from '@/models/datasets' import { RiCloseLine } from '@remixicon/react' import { useFilePreview } from '@/service/use-common' import DocumentFileIcon from '../../../common/document-file-icon' import { formatFileSize, formatNumberAbbreviated } from '@/utils/format' type FilePreviewProps = { file: File hidePreview: () => void } const FilePreview = ({ file, hidePreview, }: FilePreviewProps) => { const { t } = useTranslation() const { data: fileData, isFetching } = useFilePreview(file.id || '') const fileName = useMemo(() => { if (!file) return '' const arr = file.name.split('.') return arr.slice(0, -1).join() }, [file]) return (
{t('datasetPipeline.addDocuments.stepOne.preview')}
{`${fileName}.${file.extension || ''}`}
{file.extension} · {formatFileSize(file.size)} {fileData && ( <> · {`${formatNumberAbbreviated(fileData.content.length)} ${t('datasetPipeline.addDocuments.characters')}`} )}
{isFetching && (
)} {!isFetching && fileData && (
{fileData.content}
)}
) } export default FilePreview