Rev 4189 | Rev 4191 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import axios from 'axios'
import React, { useEffect, useState } from 'react'
import { useDispatch } from 'react-redux'
import { addNotification } from '../../redux/notification/notification.actions'
const EventsList = () => {
const [events, setEvents] = useState([])
const dispatch = useDispatch()
const getEvents = async () => {
try {
const { data: response } = await axios.get('/helpers/next-events')
if (!response.success) {
dispatch(addNotification({ style: 'danger', message: response.data }))
return
}
setEvents(response.data)
} catch (error) {
dispatch(addNotification({ style: 'danger', message: 'Ha ocurrido un error' }))
console.log(`Error: ${error.message}`)
}
}
useEffect(() => {
getEvents()
}, [])
return (
<div className='peopleYouMayKnow'>
<div className="sd-title d-flex align-items-center justify-content-between">
<h3>Proximos eventos</h3>
</div>
<div className="w-100 d-flex flex-column">
{events.length
? events.map((event) =>
<div key={event.id} style={{ background: event.backgroundColor }}>
<div className="d-flex align-items-center flex-column" style={{ gap: '.5rem' }}>
<h4 className='break-ellipsis'>{event.title}</h4>
<span>{new Date(event.start).toLocaleString()}</span>
<span>{new Date(event.end).toLocaleString()}</span>
</div>
<div className="d-flex align-items-center flex-column" style={{ gap: '.5rem' }}>
<a
className="btn btn-primary"
href={event.url}
>
Ingresar
</a>
{event.agenda}
</div>
</div>
)
: <div className="view-more">No hay eventos</div>
}
</div>
</div>
)
}
export default EventsList