Rev 7294 | Rev 7296 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'import { Container, Grid } from '@mui/material'import { Calendar, momentLocalizer } from 'react-big-calendar'import moment from 'moment'import EventsList from '../../components/calendar/EventsList'import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'import 'react-big-calendar/lib/sass/styles.scss'import { axios } from '../../utils'moment.locale('es-ES')const localizer = momentLocalizer(moment)const CalendarPage = () => {const [events, setEvents] = useState([])useEffect(() => {axios.get('/calendar/events').then((response) => {const events = response.dataconst formattedData = events.map((event) => ({...event,start: new Date(event.start),end: new Date(event.start),}))setEvents(formattedData)})}, [])return (<Container as="main" className="px-0"><Grid container spacing={2}><Grid item xs={12} md={8} spacing={3}><Calendarviews={['day', 'week', 'month']}selectablelocalizer={localizer}defaultDate={new Date()}defaultView="month"onSelectEvent={(event) => alert(event.title)}events={events}messages={{next: <ArrowForwardIosIcon />,previous: <ArrowBackIosIcon />,today: 'Hoy',month: 'Mes',week: 'Semana',day: 'Día',}}eventPropGetter={(event) => {const backgroundColor = event.backgroundColor? event.backgroundColor: 'blue'const color = event.textColor ? event.textColor : '#fff'return { style: { backgroundColor, color } }}}/></Grid><Grid item xs={12} md={4}><EventsList /></Grid></Grid></Container>)}export default CalendarPage