11import React , { FC , Fragment , useEffect , useState } from "react" ;
22//import { FileItemProps } from "../FileItem/FileItemProps";
33import FileItemStatus from "../FileItemStatus/FileItemStatus" ;
4- import { Cancel , Visibility , Info } from "../../../icons" ;
4+ import { PlayIcon , Cancel , Visibility , Info } from "../../../icons" ;
55import { Localization } from "../../../../localization/localization" ;
66//import {shrinkWord} from "./../../utils";
77export interface FileItemMainLayerProps {
88 showInfo : boolean ;
99 onOpenInfo : Function ;
1010 onOpenImage : Function | undefined ;
11+ onOpenVideo : Function | undefined ;
1112 onDelete : Function | undefined ;
1213 //fileNamePosition: FileItemProps["fileName"];
1314 fileName : string ;
1415 info : boolean ;
1516 valid : boolean ;
1617 isImage : boolean ;
18+ isVideo : boolean ;
1719 uploadStatus ?: undefined | "uploading" | "success" | "error" ;
1820 sizeFormatted : string ;
1921 /**
@@ -43,14 +45,17 @@ const FileItemMainLayer: FC<FileItemMainLayerProps> = (
4345 info,
4446 valid,
4547 isImage,
48+ isVideo,
4649 onlyImage,
4750 onOpenInfo,
4851 onOpenImage,
52+ onOpenVideo,
4953 sizeFormatted,
5054 uploadStatus,
5155 localization,
5256 hovering,
5357 } = props ;
58+
5459 const handleDelete = ( ) => {
5560 onDelete ?.( ) ;
5661 } ;
@@ -60,6 +65,9 @@ const FileItemMainLayer: FC<FileItemMainLayerProps> = (
6065 const handleOpenImage = ( ) => {
6166 onOpenImage ?.( ) ;
6267 } ;
68+ const handleOpenVideo = ( ) => {
69+ onOpenVideo ?.( ) ;
70+ }
6371 const [ uploadComplete , setUploadComplete ] = useState < boolean > ( false ) ;
6472 useEffect ( ( ) => {
6573 if ( uploadStatus === "success" ) {
@@ -134,6 +142,14 @@ const FileItemMainLayer: FC<FileItemMainLayerProps> = (
134142 size = "small"
135143 />
136144 ) }
145+ { isVideo && onOpenVideo && valid && (
146+ < PlayIcon
147+ className = "view-in-image-file-item"
148+ color = "rgba(255,255,255,0.9)"
149+ onClick = { handleOpenVideo }
150+ size = "small"
151+ />
152+ ) }
137153 { ! onlyImage && info && (
138154 < Info
139155 color = "rgba(255,255,255,0.8)"
@@ -144,64 +160,69 @@ const FileItemMainLayer: FC<FileItemMainLayerProps> = (
144160 </ div >
145161 </ div >
146162 </ div >
147- ) : < Fragment >
148- < div className = "info-container" >
149- < div
150- className = {
151- uploadStatus === "uploading" || ! onDelete
152- ? "status-close uploading"
153- : showInfo
154- ? "status-close hide"
155- : "status-close"
156- }
157- >
158- { /* <Cancel
163+ ) : (
164+ < Fragment >
165+ < div className = "info-container" >
166+ < div
167+ className = {
168+ uploadStatus === "uploading" || ! onDelete
169+ ? "status-close uploading"
170+ : showInfo
171+ ? "status-close hide"
172+ : "status-close"
173+ }
174+ >
175+ { /* <Cancel
159176 color="rgba(255,255,255,0.8)"
160177 onClick={uploadStatus === "uploading" ? undefined : handleDelete}
161178 colorFill="black"
162179 /> */ }
163- </ div >
164-
165- { uploadStatus && ! showInfo && (
166- < div
167- className = { uploadComplete ? "file-status hide" : "file-status" }
168- >
169- < FileItemStatus
170- uploadStatus = { uploadStatus }
171- localization = { localization as Localization }
172- />
173180 </ div >
174- ) }
175181
176- < div className = { "file-item-footer" } >
177- { ! onlyImage && uploadStatus && uploadComplete ? (
178- < div className = { showInfo ? "file-status hide" : "file-status" } >
179- < div className = "file-status-ok" style = { { marginBottom :"1px" } } >
180- < FileItemStatus
181- uploadStatus = { uploadStatus }
182- //message={localization==="ES-es"?"subido":"uploaded"}
183- localization = { localization as Localization }
184- />
185- </ div >
186- </ div >
187- ) : (
188- < div className = { showInfo ? "file-status hide" : "file-status" } style = { { marginBottom :"1px" } } >
182+ { uploadStatus && ! showInfo && (
183+ < div
184+ className = { uploadComplete ? "file-status hide" : "file-status" }
185+ >
189186 < FileItemStatus
190- valid = { valid }
187+ uploadStatus = { uploadStatus }
191188 localization = { localization as Localization }
192189 />
193190 </ div >
194191 ) }
195192
196- < div
197- className = { showInfo ? "size-open-info hide" : "size-open-info" }
198- >
199-
193+ < div className = { "file-item-footer" } >
194+ { ! onlyImage && uploadStatus && uploadComplete ? (
195+ < div className = { showInfo ? "file-status hide" : "file-status" } >
196+ < div
197+ className = "file-status-ok"
198+ style = { { marginBottom : "1px" } }
199+ >
200+ < FileItemStatus
201+ uploadStatus = { uploadStatus }
202+ //message={localization==="ES-es"?"subido":"uploaded"}
203+ localization = { localization as Localization }
204+ />
205+ </ div >
206+ </ div >
207+ ) : (
208+ < div
209+ className = { showInfo ? "file-status hide" : "file-status" }
210+ style = { { marginBottom : "1px" } }
211+ >
212+ < FileItemStatus
213+ valid = { valid }
214+ localization = { localization as Localization }
215+ />
216+ </ div >
217+ ) }
218+
219+ < div
220+ className = { showInfo ? "size-open-info hide" : "size-open-info" }
221+ > </ div >
200222 </ div >
201223 </ div >
202- </ div >
203-
204- </ Fragment > }
224+ </ Fragment >
225+ ) }
205226 </ Fragment >
206227 ) ;
207228} ;
0 commit comments