Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
7292 stevensc 1
import React, { useEffect, useState } from 'react'
7279 stevensc 2
import { Container, Grid } from '@mui/material'
3
import { Calendar, momentLocalizer } from 'react-big-calendar'
4
import moment from 'moment'
5
import EventsList from '../../components/calendar/EventsList'
7287 stevensc 6
import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'
7
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
7283 stevensc 8
import 'react-big-calendar/lib/sass/styles.scss'
7292 stevensc 9
import { axios } from '../../utils'
7279 stevensc 10
 
7281 stevensc 11
moment.locale('es-ES')
7279 stevensc 12
const localizer = momentLocalizer(moment)
13
 
14
const CalendarPage = () => {
7292 stevensc 15
  const [events, setEvents] = useState([])
7279 stevensc 16
 
7292 stevensc 17
  useEffect(() => {
18
    axios.get('/calendar/events').then((response) => {
19
      const events = response.data
20
 
21
      const formattedData = events.map((event) => ({
22
        ...event,
23
        start: new Date(event.start),
24
        end: new Date(event.start),
25
      }))
26
 
27
      setEvents(formattedData)
28
    })
29
  }, [])
30
 
7279 stevensc 31
  return (
32
    <Container as="main" className="px-0">
33
      <Grid container spacing={2}>
34
        <Grid item xs={12} md={8} spacing={3}>
35
          <Calendar
7290 stevensc 36
            views={['day', 'week', 'month']}
7279 stevensc 37
            selectable
38
            localizer={localizer}
39
            defaultDate={new Date()}
40
            defaultView="month"
41
            onSelectEvent={(event) => alert(event.title)}
42
            events={events}
7283 stevensc 43
            messages={{
7288 stevensc 44
              next: <ArrowForwardIosIcon />,
45
              previous: <ArrowBackIosIcon />,
7283 stevensc 46
              today: 'Hoy',
47
              month: 'Mes',
48
              week: 'Semana',
49
              day: 'Día',
50
            }}
7294 stevensc 51
            eventPropGetter={(event) => {
7295 stevensc 52
              const backgroundColor = event.backgroundColor
53
                ? event.backgroundColor
54
                : 'blue'
55
              const color = event.textColor ? event.textColor : '#fff'
56
              return { style: { backgroundColor, color } }
7294 stevensc 57
            }}
7279 stevensc 58
          />
59
        </Grid>
60
        <Grid item xs={12} md={4}>
61
          <EventsList />
62
        </Grid>
63
      </Grid>
64
    </Container>
65
  )
66
}
67
 
68
export default CalendarPage