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'; import { useMatrixClient } from '../../hooks/useMatrixClient'; import { TUploadContent } from '../../utils/matrix'; import { bytesToSize, getFileTypeIcon } from '../../utils/common'; import { roomUploadAtomFamily, TUploadItem, TUploadMetadata, } from '../../state/room/roomInputDrafts'; import { useObjectURL } from '../../hooks/useObjectURL'; import { useMediaConfig } from '../../hooks/useMediaConfig'; type PreviewImageProps = { fileItem: TUploadItem; }; function PreviewImage({ fileItem }: PreviewImageProps) { const { originalFile, metadata } = fileItem; const fileUrl = useObjectURL(originalFile); return ( {originalFile.name} ); } 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