'use client' import React 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 { 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 getFileName = (currentFile?: File) => { if (!currentFile) return '' const arr = currentFile.name.split('.') return arr.slice(0, -1).join() } const getFileSize = (fileSize: number) => { if (!fileSize) return fileSize const units = ['', 'K', 'M', 'G', 'T', 'P'] let index = 0 while (fileSize >= 1024 && index < units.length) { fileSize = fileSize / 1024 index++ } return `${fileSize.toFixed(2)} ${units[index]}B` } return (