Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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