Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 706 | Rev 726 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 706 Rev 725
Línea 1... Línea 1...
1
import React, { useEffect, useState } from 'react'
1
import React, { useEffect, useState } from 'react'
2
import { axios } from '../../utils'
2
import { axios } from '../../utils'
-
 
3
import { useDispatch } from 'react-redux'
-
 
4
import { addNotification } from 'store/notification/notification.actions'
3
import { Container, Grid } from '@mui/material'
5
import { Container, Grid } from '@mui/material'
4
import { Calendar, momentLocalizer } from 'react-big-calendar'
6
import { Calendar, momentLocalizer } from 'react-big-calendar'
5
import moment from 'moment'
7
import moment from 'moment'
6
import EventsList from '../../components/calendar/EventsList'
-
 
7
import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'
8
import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'
8
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
9
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
Línea -... Línea 10...
-
 
10
 
9
 
11
import EventsList from 'components/calendar/EventsList'
Línea 10... Línea 12...
10
import EventModal from '../../components/calendar/EventModal'
12
import EventModal from 'components/calendar/EventModal'
Línea 11... Línea 13...
11
 
13
 
12
import 'react-big-calendar/lib/sass/styles.scss'
14
import 'react-big-calendar/lib/sass/styles.scss'
Línea 13... Línea 15...
13
 
15
 
14
moment.locale('es-ES')
16
moment.locale('es-ES')
15
const localizer = momentLocalizer(moment)
17
const localizer = momentLocalizer(moment)
16
 
18
 
-
 
19
const CalendarPage = () => {
Línea 17... Línea 20...
17
const CalendarPage = () => {
20
  const [events, setEvents] = useState([])
18
  const [events, setEvents] = useState([])
21
  const [selectedEvent, setSelectedEvent] = useState(null)
19
  const [selectedEvent, setSelectedEvent] = useState(null)
22
  const [modalShow, setModalShow] = useState(false)
20
  const [modalShow, setModalShow] = useState(false)
23
  const dispatch = useDispatch()
Línea 28... Línea 31...
28
    setSelectedEvent(null)
31
    setSelectedEvent(null)
29
    setModalShow(false)
32
    setModalShow(false)
30
  }
33
  }
Línea 31... Línea 34...
31
 
34
 
-
 
35
  useEffect(() => {
32
  useEffect(() => {
36
    axios
-
 
37
      .get('/calendar/events')
33
    axios.get('/calendar/events').then((response) => {
38
      .then(({ data: responseData }) => {
34
      const events = response.data
39
        const { data, success } = responseData
35
 
-
 
36
      const formattedData = events.map((event) => {
-
 
37
        const eventStart = new Date(event.start.replace(/-/g, '/'))
40
 
38
        const eventEnd = event.allDay
41
        if (!success) {
39
          ? eventStart
42
          const errorMessage =
40
          : new Date(event.end.replace(/-/g, '/'))
-
 
41
 
-
 
42
        return {
43
            typeof data === 'string'
43
          ...event,
44
              ? data
44
          start: eventStart,
45
              : 'Error interno. Por favor, intente más tarde.'
45
          end: eventEnd
46
          throw new Error(errorMessage)
46
        }
-
 
Línea -... Línea 47...
-
 
47
        }
-
 
48
 
-
 
49
        const formattedData = data.map((event) => {
-
 
50
          const eventStart = new Date(event.start.replace(/-/g, '/'))
-
 
51
          const eventEnd = event.allDay
-
 
52
            ? eventStart
-
 
53
            : new Date(event.end.replace(/-/g, '/'))
-
 
54
 
-
 
55
          return {
-
 
56
            ...event,
-
 
57
            start: eventStart,
-
 
58
            end: eventEnd
-
 
59
          }
47
      })
60
        })
-
 
61
 
-
 
62
        setEvents(formattedData)
-
 
63
      })
48
 
64
      .catch((err) => {
49
      setEvents(formattedData)
65
        dispatch(addNotification({ style: 'danger', msg: err.message }))
Línea 50... Línea 66...
50
    })
66
      })
51
  }, [])
67
  }, [])
52
 
68