import { FileItem } from '@standardnotes/snjs' import { FunctionComponent, useEffect, useMemo, useRef } from 'react' import { createObjectURLWithRef } from './CreateObjectURLWithRef' import ImagePreview from './ImagePreview' import { PreviewableTextFileTypes } from './isFilePreviewable' import TextPreview from './TextPreview' type Props = { file: FileItem bytes: Uint8Array } const PreviewComponent: FunctionComponent = ({ file, bytes }) => { const objectUrlRef = useRef() const objectUrl = useMemo(() => { return createObjectURLWithRef(file.mimeType, bytes, objectUrlRef) }, [bytes, file.mimeType]) useEffect(() => { const objectUrl = objectUrlRef.current return () => { if (objectUrl) { URL.revokeObjectURL(objectUrl) objectUrlRef.current = '' } } }, []) if (file.mimeType.startsWith('image/')) { return } if (file.mimeType.startsWith('video/')) { return