@@ -33,25 +33,20 @@ export const Thumbnail: React.FC<ThumbnailProps> = (props) => {
33
33
const { className = '' , doc : { filename, mimeType } = { } , fileSrc, imageCacheTag, size } = props
34
34
const [ fileExists , setFileExists ] = React . useState ( undefined )
35
35
const classNames = [ baseClass , `${ baseClass } --size-${ size || 'medium' } ` , className ] . join ( ' ' )
36
- const [ type , setType ] = React . useState < 'audio' | 'document' | 'image' | 'unknown' | 'video' > (
37
- undefined ,
38
- )
39
-
40
- React . useEffect ( ( ) => {
41
- if ( mimeType ) setType ( mimeType . split ( '/' ) [ 0 ] )
42
- } , [ mimeType ] )
36
+ const fileType : 'audio' | 'document' | 'image' | 'unknown' | 'video' | false =
37
+ mimeType ?. split ( '/' ) [ 0 ]
43
38
44
39
React . useEffect ( ( ) => {
45
- if ( ! fileSrc || ! type ) {
40
+ if ( ! fileSrc || ! fileType ) {
46
41
setFileExists ( false )
47
42
return
48
43
}
49
- if ( type === 'image' ) {
44
+ if ( fileType === 'image' ) {
50
45
const img = new Image ( )
51
46
img . src = fileSrc
52
47
img . onload = ( ) => setFileExists ( true )
53
48
img . onerror = ( ) => setFileExists ( false )
54
- } else if ( type === 'video' ) {
49
+ } else if ( fileType === 'video' ) {
55
50
const video = document . createElement ( 'video' )
56
51
video . src = fileSrc
57
52
video . crossOrigin = 'anonymous'
@@ -60,18 +55,15 @@ export const Thumbnail: React.FC<ThumbnailProps> = (props) => {
60
55
} else {
61
56
setFileExists ( false )
62
57
}
63
- } , [ fileSrc , type ] )
58
+ } , [ fileSrc ] )
64
59
65
60
return (
66
61
< div className = { classNames } >
67
62
{ fileExists === undefined && < ShimmerEffect height = "100%" /> }
68
- { fileExists && type === 'image' && (
69
- < img
70
- alt = { filename as string }
71
- src = { `${ fileSrc } ${ imageCacheTag ? `?${ imageCacheTag } ` : '' } ` }
72
- />
63
+ { fileExists && fileType === 'image' && (
64
+ < img alt = { filename } src = { `${ fileSrc } ${ imageCacheTag ? `?${ imageCacheTag } ` : '' } ` } />
73
65
) }
74
- { fileExists && type === 'video' && (
66
+ { fileExists && fileType === 'video' && (
75
67
< video
76
68
autoPlay = { false }
77
69
controls = { false }
0 commit comments