import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import BigCalendar from 'react-big-calendar'; import moment from 'moment'; import { Paper } from '@material-ui/core'; import styles from './calendar-jss'; BigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment)); function Event(event) { return ( {event.title} ); } class EventCalendar extends React.Component { eventStyleGetter = event => { const backgroundColor = '#' + event.hexColor; const style = { backgroundColor, }; return { style }; } render() { const allViews = Object.keys(BigCalendar.Views).map(k => BigCalendar.Views[k]); const { classes, events, handleEventClick } = this.props; return ( handleEventClick(selectedEvent)} eventPropGetter={(this.eventStyleGetter)} onSelectSlot={slotInfo => console.log( `selected slot: \n\nstart ${slotInfo.start.toLocaleString()} ` + `\nend: ${slotInfo.end.toLocaleString()}` + `\naction: ${slotInfo.action}` ) } components={{ event: Event }} /> ); } } EventCalendar.propTypes = { classes: PropTypes.object.isRequired, events: PropTypes.array.isRequired, handleEventClick: PropTypes.func.isRequired, }; export default withStyles(styles)(EventCalendar);