Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React from 'react'
import { useDispatch } from 'react-redux'
import { Box } from '@mui/material'
import parse from 'html-react-parser'

import { axios } from '@app/utils'
import { addNotification } from '@app/redux/notification/notification.actions'

import Modal from 'components/UI/modal/Modal'

const EventModal = ({ event, show, onClose }) => {
  const dispatch = useDispatch()

  const getBackendVarUrl = (url = '') => {
    if (!url) return

    axios
      .get(url)
      .then(({ data: responseData }) => {
        const { data, success } = responseData

        if (!success) {
          const errorMessage =
            typeof data === 'string'
              ? data
              : 'Error interno. Por favor, intente más tarde.'
          throw new Error(errorMessage)
        }

        window.open(data, '_blank')
      })
      .catch((err) => {
        dispatch(addNotification({ style: 'danger', message: err.message }))
      })
  }

  return (
    <Modal title={event?.title} show={show} onClose={onClose}>
      <Box
        sx={{
          cursor: event?.url ? 'cursor-pointer' : 'default'
        }}
        onClick={() => getBackendVarUrl(event?.url)}
      >
        {event?.agenda ? parse(event.agenda) : null}
      </Box>
    </Modal>
  )
}

export default EventModal