Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1291 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useState } from 'react'
import { Button, Modal } from 'react-bootstrap'
import { shareModalTypes } from '../../../../redux/share-modal/shareModal.types'

import FormErrorFeedback from '../../../../shared/form-error-feedback/FormErrorFeedback'
import DropzoneComponent from '../../../../shared/dropzone/DropzoneComponent'
import Spinner from '../../../../shared/loading-spinner/Spinner'

const SendFileModal = ({ isShow, onHide, onComplete, loading }) => {
  const [selectedFile, setSelectedFile] = useState(null)
  const [error, setError] = useState(false)

  const onUpload = (file) => {
    setSelectedFile(file)
  }

  const onClose = () => {
    setSelectedFile(null)
    onHide()
  }

  const handleSubmit = () => {
    if (!selectedFile) {
      setError(true)
      return
    }

    onComplete(selectedFile)
  }

  return (
    <Modal show={isShow} onHide={onClose}>
      <Modal.Body>
        {loading ? (
          <Spinner />
        ) : (
          <DropzoneComponent
            modalType={shareModalTypes.CHAT}
            onUploaded={onUpload}
            settedFile={selectedFile}
            recomendationText={
              <p className="text-center">
                Imagenes: png, jpg, jpeg
                <br />
                Videos: mp4, mpeg, webm
                <br />
                Archivos: pdf
              </p>
            }
          />
        )}
        {error && (
          <FormErrorFeedback>Por favor seleccione un archivo</FormErrorFeedback>
        )}
      </Modal.Body>
      <Modal.Footer>
        <Button variant="primary" onClick={handleSubmit} disabled={loading}>
          Enviar
        </Button>
        <Button variant="danger" onClick={onClose}>
          Cancelar
        </Button>
      </Modal.Footer>
    </Modal>
  )
}

export default SendFileModal