react-big-scheduler
react-big-scheduler copied to clipboard
Element type is invalid
I'm having this error, when I try to setup Basic.js
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
import React, {Component} from 'react'
import Scheduler, {SchedulerData, ViewTypes, DATE_FORMAT} from 'react-big-scheduler';
import moment from "moment";
import DemoData from "./DemoData";
import {DndProvider, DragDropContext} from 'react-dnd'
import HTML5Backend from 'react-dnd-html5-backend';
class Basic extends Component{
constructor(props){
super(props);
let schedulerData = new SchedulerData(new moment("2017-12-18").format(DATE_FORMAT), ViewTypes.Week);
schedulerData.localeMoment.locale('en');
schedulerData.setResources(DemoData.resources);
schedulerData.setEvents(DemoData.events);
this.state = {
viewModel: schedulerData
}
}
render(){
const {viewModel} = this.state;
return (
<div>
<div>
<h3 style={{textAlign: 'center'}}>Basic example</h3>
<DndProvider backend={HTML5Backend}>
<Scheduler schedulerData={viewModel}
prevClick={this.prevClick}
nextClick={this.nextClick}
onSelectDate={this.onSelectDate}
onViewChange={this.onViewChange}
eventItemClick={this.eventClicked}
viewEventClick={this.ops1}
viewEventText="Ops 1"
viewEvent2Text="Ops 2"
viewEvent2Click={this.ops2}
updateEventStart={this.updateEventStart}
updateEventEnd={this.updateEventEnd}
moveEvent={this.moveEvent}
newEvent={this.newEvent}
onScrollLeft={this.onScrollLeft}
onScrollRight={this.onScrollRight}
onScrollTop={this.onScrollTop}
onScrollBottom={this.onScrollBottom}
toggleExpandFunc={this.toggleExpandFunc}
/>
</DndProvider>
</div>
</div>
)
}
prevClick = (schedulerData)=> {
schedulerData.prev();
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
})
}
nextClick = (schedulerData)=> {
schedulerData.next();
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
})
}
onViewChange = (schedulerData, view) => {
schedulerData.setViewType(view.viewType, view.showAgenda, view.isEventPerspective);
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
})
}
onSelectDate = (schedulerData, date) => {
schedulerData.setDate(date);
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
})
}
eventClicked = (schedulerData, event) => {
alert(`You just clicked an event: {id: ${event.id}, title: ${event.title}}`);
};
ops1 = (schedulerData, event) => {
alert(`You just executed ops1 to event: {id: ${event.id}, title: ${event.title}}`);
};
ops2 = (schedulerData, event) => {
alert(`You just executed ops2 to event: {id: ${event.id}, title: ${event.title}}`);
};
newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
let newFreshId = 0;
schedulerData.events.forEach((item) => {
if(item.id >= newFreshId)
newFreshId = item.id + 1;
});
let newEvent = {
id: newFreshId,
title: 'New event you just created',
start: start,
end: end,
resourceId: slotId,
bgColor: 'purple'
}
schedulerData.addEvent(newEvent);
this.setState({
viewModel: schedulerData
})
}
updateEventStart = (schedulerData, event, newStart) => {
schedulerData.updateEventStart(event, newStart);
this.setState({
viewModel: schedulerData
})
}
updateEventEnd = (schedulerData, event, newEnd) => {
schedulerData.updateEventEnd(event, newEnd);
this.setState({
viewModel: schedulerData
})
}
moveEvent = (schedulerData, event, slotId, slotName, start, end) => {
schedulerData.moveEvent(event, slotId, slotName, start, end);
this.setState({
viewModel: schedulerData
})
}
onScrollRight = (schedulerData, schedulerContent, maxScrollLeft) => {
if(schedulerData.ViewTypes === ViewTypes.Day) {
schedulerData.next();
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
});
schedulerContent.scrollLeft = maxScrollLeft - 10;
}
}
onScrollLeft = (schedulerData, schedulerContent, maxScrollLeft) => {
if(schedulerData.ViewTypes === ViewTypes.Day) {
schedulerData.prev();
schedulerData.setEvents(DemoData.events);
this.setState({
viewModel: schedulerData
});
schedulerContent.scrollLeft = 10;
}
}
onScrollTop = (schedulerData, schedulerContent, maxScrollTop) => {
console.log('onScrollTop');
}
onScrollBottom = (schedulerData, schedulerContent, maxScrollTop) => {
console.log('onScrollBottom');
}
toggleExpandFunc = (schedulerData, slotId) => {
schedulerData.toggleExpandStatus(slotId);
this.setState({
viewModel: schedulerData
});
}
}
export default DragDropContext(HTML5Backend)(Basic);