1- import React , { useContext } from 'react' ;
1+ import React , { useContext , useState } from 'react' ;
22
33import { CircularProgressbar } from 'react-circular-progressbar' ;
44
5- import { Container , FileInfo , Preview , List } from './styles' ;
5+ import { Container , FileInfo , Preview , List , ListItem } from './styles' ;
66
77import { ThemeContext } from 'styled-components' ;
88
@@ -12,22 +12,35 @@ import { UploadContext } from '../../providers/UploadProvider';
1212function FileList ( ) {
1313 const themeContext = useContext ( ThemeContext ) ;
1414 const { uploadedFiles, handleDelete } = useContext ( UploadContext ) ;
15+ const [ deleteFileAnimation , setDeleteFileAnimation ] = useState ( '' ) ;
1516
1617 return (
17- < Container >
18+ < Container initial = { { opacity : 0 , y : - 10 } } animate = { { opacity : 1 , y : 0 } } >
1819 < h4 > Imagens carregadas</ h4 >
1920 < List >
2021 { uploadedFiles . map ( ( file ) => (
21- < li key = { file . id } >
22+ < ListItem
23+ key = { file . id }
24+ initial = { { opacity : 0 , x : - 100 } }
25+ animate = {
26+ deleteFileAnimation === file . id
27+ ? { opacity : 0 , scale : 0 }
28+ : { opacity : 1 , x : 0 }
29+ }
30+ >
2231 < FileInfo >
2332 < Preview src = { file . preview } alt = "preview" />
24-
2533 < div >
2634 < strong > { file . name } </ strong >
2735 < span >
2836 { file . readableSize }
2937 { ! ! file . url && (
30- < button onClick = { ( e ) => handleDelete ( file . id ) } >
38+ < button
39+ onClick = { ( e ) => {
40+ setDeleteFileAnimation ( file . id ) ;
41+ handleDelete ( file . id ) ;
42+ } }
43+ >
3144 Excluir
3245 </ button >
3346 ) }
@@ -60,7 +73,7 @@ function FileList() {
6073 ) }
6174 { file . uploaded && < MdCheckCircle size = { 34 } color = "#4caf50" /> }
6275 { file . error && < MdError size = { 34 } color = "#f44336" /> }
63- </ li >
76+ </ ListItem >
6477 ) ) }
6578 </ List >
6679 </ Container >
0 commit comments