Rev 7301 | Rev 7306 | 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'import EventModal from '../../components/calendar/EventModal'moment.locale('es-ES')const localizer = momentLocalizer(moment)const CalendarPage = () => {const [events, setEvents] = useState([])const [selectedEvent, setSelectedEvent] = useState(null)const [modalShow, setModalShow] = useState(false)const selectEvent = (event) => {setSelectedEvent(event)setModalShow(true)}const unselectEvent = () => {setSelectedEvent(null)setModalShow(false)}useEffect(() => {axios.get('/calendar/events').then((response) => {const events = response.dataconst formattedData = events.map((event) => {const eventStart = new Date(event.start).replace(/-/g, '/')const eventEnd = event.allDay? eventStart: new Date(event.end).replace(/-/g, '/')return {...event,start: eventStart,end: eventEnd,}})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={selectEvent}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><EventModalshow={modalShow}event={selectedEvent}onClose={unselectEvent}/></>)}export default CalendarPage