Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1406 | Rev 1437 | 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 from 'react'
1426 stevensc 2
import { axios } from '../../utils'
3
import { Modal } from 'react-bootstrap'
964 stevensc 4
import { useDispatch } from 'react-redux'
1426 stevensc 5
import { addNotification } from '../../redux/notification/notification.actions'
5 stevensc 6
import parse from 'html-react-parser'
7
 
8
const EventModal = ({ event, show, onClose }) => {
9
  const dispatch = useDispatch()
10
 
11
  const getBackendVarUrl = (url = '') => {
725 stevensc 12
    if (!url) return
5 stevensc 13
 
14
    axios
15
      .get(url)
725 stevensc 16
      .then(({ data: responseData }) => {
17
        const { data, success } = responseData
5 stevensc 18
 
19
        if (!success) {
725 stevensc 20
          const errorMessage =
21
            typeof data === 'string'
22
              ? data
23
              : 'Error interno. Por favor, intente más tarde.'
24
          throw new Error(errorMessage)
5 stevensc 25
        }
26
 
27
        window.open(data, '_blank')
28
      })
655 stevensc 29
      .catch((err) => {
30
        dispatch(addNotification({ style: 'danger', message: err.message }))
5 stevensc 31
      })
32
  }
33
 
34
  return (
1426 stevensc 35
    <Modal show={show} onHide={onClose}>
36
      <Modal.Header className='pb-0' closeButton>
37
        <Modal.Title>{event?.title}</Modal.Title>
38
      </Modal.Header>
39
      <Modal.Body>
40
        <div
41
          className={event?.url && 'cursor-pointer'}
42
          onClick={() => getBackendVarUrl(event?.url)}
43
        >
44
          {event?.agenda && parse(event?.agenda)}
45
        </div>
46
      </Modal.Body>
5 stevensc 47
    </Modal>
48
  )
49
}
50
 
51
export default EventModal