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);