diff --git a/src/app/components/upload-card/UploadCardRenderer.tsx b/src/app/components/upload-card/UploadCardRenderer.tsx
index 48371f8a..f075f937 100644
--- a/src/app/components/upload-card/UploadCardRenderer.tsx
+++ b/src/app/components/upload-card/UploadCardRenderer.tsx
@@ -12,17 +12,54 @@ import {
} from '../../state/room/roomInputDrafts';
import { useObjectURL } from '../../hooks/useObjectURL';
-type RenderPreviewProps = {
- style: React.CSSProperties;
- src: string;
- alt: string;
+type PreviewImageProps = {
+ fileItem: TUploadItem;
};
+function PreviewImage({ fileItem }: PreviewImageProps) {
+ const { originalFile, metadata } = fileItem;
+ const fileUrl = useObjectURL(originalFile);
+
+ return (
+
+ );
+}
+
+type PreviewVideoProps = {
+ fileItem: TUploadItem;
+};
+function PreviewVideo({ fileItem }: PreviewVideoProps) {
+ const { originalFile, metadata } = fileItem;
+ const fileUrl = useObjectURL(originalFile);
+
+ return (
+ // eslint-disable-next-line jsx-a11y/media-has-caption
+
+ );
+}
+
type MediaPreviewProps = {
fileItem: TUploadItem;
onSpoiler: (marked: boolean) => void;
- renderPreviewElement: (props: RenderPreviewProps) => ReactNode;
+ children: ReactNode;
};
-function MediaPreview({ fileItem, onSpoiler, renderPreviewElement }: MediaPreviewProps) {
+function MediaPreview({ fileItem, onSpoiler, children }: MediaPreviewProps) {
const { originalFile, metadata } = fileItem;
const fileUrl = useObjectURL(originalFile);
@@ -35,16 +72,7 @@ function MediaPreview({ fileItem, onSpoiler, renderPreviewElement }: MediaPrevie
position: 'relative',
}}
>
- {renderPreviewElement({
- style: {
- objectFit: 'contain',
- width: '100%',
- height: toRem(152),
- filter: fileItem.metadata.markedAsSpoiler ? 'blur(44px)' : undefined,
- },
- src: fileUrl,
- alt: originalFile.name,
- })}
+ {children}
{fileItem.originalFile.type.startsWith('image') && (
-
}
- />
+
+
+
)}
{fileItem.originalFile.type.startsWith('video') && (
- }
- />
+
+
+
)}
{upload.status === UploadStatus.Idle && (