Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4192 | Rev 4194 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4189 stevensc 1
import React, { useEffect, useState } from 'react'
4191 stevensc 2
import axios from '../../utils/axios'
4189 stevensc 3
import { useDispatch } from 'react-redux'
4
import { addNotification } from '../../redux/notification/notification.actions'
4188 stevensc 5
 
6
const EventsList = () => {
7
 
4189 stevensc 8
    const [events, setEvents] = useState([])
9
    const dispatch = useDispatch()
10
 
4188 stevensc 11
    const getEvents = async () => {
12
        try {
13
            const { data: response } = await axios.get('/helpers/next-events')
14
 
4189 stevensc 15
            if (!response.success) {
16
                dispatch(addNotification({ style: 'danger', message: response.data }))
17
                return
18
            }
4188 stevensc 19
 
4189 stevensc 20
            setEvents(response.data)
4188 stevensc 21
        } catch (error) {
4189 stevensc 22
            dispatch(addNotification({ style: 'danger', message: 'Ha ocurrido un error' }))
23
            console.log(`Error: ${error.message}`)
4188 stevensc 24
        }
25
    }
4189 stevensc 26
 
4188 stevensc 27
    useEffect(() => {
28
        getEvents()
29
    }, [])
30
 
31
    return (
4190 stevensc 32
        <div className='peopleYouMayKnow'>
4189 stevensc 33
            <div className="sd-title d-flex align-items-center justify-content-between">
34
                <h3>Proximos eventos</h3>
35
            </div>
4191 stevensc 36
            <div className="w-100 d-flex flex-column" style={{ gap: '.5rem' }}>
4189 stevensc 37
                {events.length
4193 stevensc 38
                    ? events.map((event) => {
39
                        const eventStart = new Date(event.start).toLocaleString()
40
                        const eventEnd = new Date(event.end).toLocaleString()
41
 
42
                        return (
43
                            <div className='rounded' key={event.id} style={{ background: event.backgroundColor }}>
44
                                <div className="d-flex align-items-center flex-column" style={{ gap: '.5rem' }}>
45
                                    <h4 style={{ color: event.textColor }}>{event.title}</h4>
46
                                    <span style={{ color: event.textColor }}>{`${eventStart} - ${eventEnd}`}</span>
4192 stevensc 47
                                </div>
4193 stevensc 48
                                <div className="d-flex align-items-center flex-column" style={{ gap: '.5rem' }}>
49
                                    <a
50
                                        className="btn btn-primary"
51
                                        href={event.url}
52
                                    >
53
                                        Ingresar
54
                                    </a>
55
                                </div>
4189 stevensc 56
                            </div>
4193 stevensc 57
                        )
58
                    })
4189 stevensc 59
                    : <div className="view-more">No hay eventos</div>
60
                }
61
            </div>
62
        </div>
4188 stevensc 63
    )
64
}
65
 
66
export default EventsList