Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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