tylerzika
4/10/2017 - 4:12 PM

Calendar.jsx

import React from 'react';
import Calendar from 'deskbookers-calendar';
import moment from 'moment';

Calendar.momentLocalizer(moment);

class TheCalendar extends React.Component {

  constructor (props) {
    super(props)
    this.state = {
      events: this.props.events,
      view: 'day'
    }
  }
  componentWillReceiveProps(nextProps) {
    this.setState({
      events: nextProps.events
    })
  }

  updateEventTime(StartDateTime, EndDateTime) {
    this.props.updateEventTime(StartDateTime, EndDateTime);
  }

  displayEditEventForm(eventId) {
    const active = true
    this.props.enterEditMode({active, eventId});
  }

  render() {

    let formats = {

      // formats the day and week view tp '03/12'
      dayFormat: (date, culture, localizer) =>
        localizer.format(date, 'MM/DD', culture),

      // formats the top of day view to '03/12'
      dayHeaderFormat: (date, culture, localizer) =>
        localizer.format(date, 'MM/DD', culture),
    }
    console.log(this.props.resources);
    console.log(this.props.events);
    return(
      <div className="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-1 slds-large-size--8-of-12">
        <Calendar
          selectable
          popup

          startAccessor='StartDateTime'
          endAccessor='EndDateTime'
          titleAccessor='Subject'
          allDayAccessor='IsAllDayEvent'

          style={{height: 800}}

          onView={ view =>
            this.setState({view})
          }

          events={this.props.events}
          resources={this.props.resources}
          formats={formats}
          view={this.state.view}

          onSelectEvent={event =>
            this.displayEditEventForm(event.Id)}
          onSelectSlot={slotInfo =>
            this.updateEventTime(slotInfo.start.toLocaleString(), slotInfo.end.toLocaleString())}
        />
      </div>
    );
  }
}

export default TheCalendar;