Proyectos de Subversion LeadersLinked - SPA

Rev

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