Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1426 | Rev 1929 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 stevensc 1
import React, { useState } from 'react'
2
import { useSelector } from 'react-redux'
3
import { shareModalTypes } from '../../redux/share-modal/shareModal.types'
4
 
1384 stevensc 5
import Modal from 'components/UI/modal/Modal'
1217 stevensc 6
import Spinner from 'components/UI/Spinner'
1437 stevensc 7
import FormErrorFeedback from 'components/UI/form/FormErrorFeedback'
1217 stevensc 8
import DropzoneComponent from 'components/dropzone/DropzoneComponent'
5 stevensc 9
 
10
const FileModal = ({ isShow, onHide, onComplete, loading }) => {
11
  const [selectedFile, setSelectedFile] = useState(null)
12
  const [error, setError] = useState(false)
13
  const labels = useSelector(({ intl }) => intl.labels)
14
 
15
  const onUpload = (file) => {
16
    setSelectedFile(file)
17
  }
18
 
19
  const onClose = () => {
20
    setSelectedFile(null)
21
    onHide()
22
  }
23
 
24
  const handleSubmit = () => {
25
    if (!selectedFile) {
26
      setError(true)
27
      return
28
    }
29
 
30
    onComplete(selectedFile)
31
  }
32
 
33
  return (
1426 stevensc 34
    <Modal
35
      show={isShow}
36
      onClose={onClose}
37
      onReject={onClose}
38
      onAccept={handleSubmit}
39
    >
1217 stevensc 40
      {loading ? (
41
        <Spinner />
42
      ) : (
43
        <DropzoneComponent
44
          modalType={shareModalTypes.CHAT}
45
          onUploaded={onUpload}
46
          settedFile={selectedFile}
47
          recomendationText={
48
            <p className='text-center'>
49
              {labels.extensions_allowed}: png, jpg, jpeg, mp4, mpeg, webm, pdf.
50
            </p>
51
          }
52
        />
53
      )}
54
      {error && <FormErrorFeedback>{labels.select_file}</FormErrorFeedback>}
5 stevensc 55
    </Modal>
56
  )
57
}
58
 
59
export default FileModal