import { AudioPlayer, Box, Icon } from '@rocket.chat/fuselage'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { FilePreviewType } from './FilePreview'; import ImagePreview from './ImagePreview'; import PreviewSkeleton from './PreviewSkeleton'; import { userAgentMIMETypeFallback } from '../../../../lib/utils/userAgentMIMETypeFallback'; import { useFileAsDataURL } from '../../hooks/useFileAsDataURL'; export type MediaPreviewProps = { file: File; fileType: FilePreviewType; altText?: string; }; const MediaPreview = ({ file, fileType, altText }: MediaPreviewProps) => { const [loaded, url] = useFileAsDataURL(file); const { t } = useTranslation(); if (!loaded) { return ; } if (typeof url !== 'string') { return ( {t('FileUpload_Cannot_preview_file')} ); } if (fileType === FilePreviewType.IMAGE) { return ; } if (fileType === FilePreviewType.VIDEO) { return ( {t('Browser_does_not_support_video_element')} ); } if (fileType === FilePreviewType.AUDIO) { return ; } throw new Error('Wrong props provided for MediaPreview'); }; export default memo(MediaPreview);