diff --git a/src/app/components/upload-card/UploadCardRenderer.tsx b/src/app/components/upload-card/UploadCardRenderer.tsx index 4383e204..48371f8a 100644 --- a/src/app/components/upload-card/UploadCardRenderer.tsx +++ b/src/app/components/upload-card/UploadCardRenderer.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React, { ReactNode, useEffect } from 'react'; import { Box, Chip, Icon, IconButton, Icons, Text, color, config, toRem } from 'folds'; import { UploadCard, UploadCardError, UploadCardProgress } from './UploadCard'; import { UploadStatus, UploadSuccess, useBindUploadAtom } from '../../state/upload'; @@ -12,8 +12,17 @@ import { } from '../../state/room/roomInputDrafts'; import { useObjectURL } from '../../hooks/useObjectURL'; -type ImagePreviewProps = { fileItem: TUploadItem; onSpoiler: (marked: boolean) => void }; -function ImagePreview({ fileItem, onSpoiler }: ImagePreviewProps) { +type RenderPreviewProps = { + style: React.CSSProperties; + src: string; + alt: string; +}; +type MediaPreviewProps = { + fileItem: TUploadItem; + onSpoiler: (marked: boolean) => void; + renderPreviewElement: (props: RenderPreviewProps) => ReactNode; +}; +function MediaPreview({ fileItem, onSpoiler, renderPreviewElement }: MediaPreviewProps) { const { originalFile, metadata } = fileItem; const fileUrl = useObjectURL(originalFile); @@ -26,16 +35,16 @@ function ImagePreview({ fileItem, onSpoiler }: ImagePreviewProps) { position: 'relative', }} > - {originalFile.name} + }, + src: fileUrl, + alt: originalFile.name, + })} {fileItem.originalFile.type.startsWith('image') && ( - + {p.alt}} + /> + )} + {fileItem.originalFile.type.startsWith('video') && ( +