forked from StephenChou1017/react-big-scheduler
-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dayStartFrom - dayStopTo not working! #8
Comments
I just tested it and it seems to working fine on my end, could you share your code? |
Sure, this is what how i'm using it
|
JavaScript import dayjs, { Dayjs } from 'dayjs';
import React, { useEffect, useState } from 'react';
import Scheduler, {
EventItem, Resource, SchedulerData, SchedulerDataBehaviors, SchedulerDataConfig, View, ViewType
} from 'react-big-scheduler-stch';
import "react-big-scheduler-stch/lib/css/style.css";
function TeamCalendar (props) {
const [schedulerData, setSchedulerData] = useState(new SchedulerData(props.date ?? dayjs(),
props.viewType ?? ViewType.Month,
props.showAgenda ?? false,
props.isEventPerspective ?? false,
{
...props.schedulerDataConfig,
dayStartFrom: 9,
dayStopTo: 18
}
))
useEffect(() => {
schedulerData.setResources(props.resources);
schedulerData.setEvents(props.events);
}, [])
const prevClick = (schedulerData) => {
schedulerData.prev();
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const nextClick = (schedulerData) => {
schedulerData.next();
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const onViewChange = (schedulerData, view) => {
schedulerData.setViewType(view.viewType, view.showAgenda, view.isEventPerspective);
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const onSelectDate = (schedulerData, date) => {
schedulerData.setDate(date);
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const eventClicked = (schedulerData, event) => {
};
const toggleExpandFunc = (schedulerData, slotId) => {
schedulerData.toggleExpandStatus(slotId);
setSchedulerData(schedulerData)
}
return (
<Scheduler
parentRef={props.parentRef}
prevClick={prevClick}
nextClick={nextClick}
onSelectDate={onSelectDate}
onViewChange={onViewChange}
toggleExpandFunc={toggleExpandFunc}
eventItemClick={eventClicked}
schedulerData={schedulerData}
/>
)
}
export default TeamCalendar TypeScript import dayjs, { Dayjs } from 'dayjs';
import React, { useEffect, useState } from 'react';
import Scheduler, {
EventItem, Resource, SchedulerData, SchedulerDataBehaviors, SchedulerDataConfig, View, ViewType
} from 'react-big-scheduler-stch';
import "react-big-scheduler-stch/lib/css/style.css";
interface IProps {
date?: string | Dayjs;
viewType?: ViewType;
showAgenda?: boolean;
isEventPerspective?: boolean;
newConfig?: SchedulerDataConfig;
newBehaviours?: SchedulerDataBehaviors;
schedulerDataConfig?: SchedulerDataConfig;
resources: Resource[];
events: EventItem[];
parentRef?: React.RefObject<any>;
}
function TeamCalendar (props: IProps) {
const [schedulerData, setSchedulerData] = useState(new SchedulerData(props.date ?? dayjs(),
props.viewType ?? ViewType.Month,
props.showAgenda ?? false,
props.isEventPerspective ?? false,
{
...props.schedulerDataConfig,
dayStartFrom: 9,
dayStopTo: 18
}
))
useEffect(() => {
schedulerData.setResources(props.resources);
schedulerData.setEvents(props.events);
}, [])
const prevClick = (schedulerData: SchedulerData) => {
schedulerData.prev();
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const nextClick = (schedulerData: SchedulerData) => {
schedulerData.next();
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const onViewChange = (schedulerData: SchedulerData, view: View) => {
schedulerData.setViewType(view.viewType, view.showAgenda, view.isEventPerspective);
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const onSelectDate = (schedulerData: SchedulerData, date: string) => {
schedulerData.setDate(date);
schedulerData.setEvents(props.events);
setSchedulerData(schedulerData)
}
const eventClicked = (schedulerData: SchedulerData, event: EventItem) => {
};
const toggleExpandFunc = (schedulerData: SchedulerData, slotId: string) => {
schedulerData.toggleExpandStatus(slotId);
setSchedulerData(schedulerData)
}
return (
<Scheduler
parentRef={props.parentRef}
prevClick={prevClick}
nextClick={nextClick}
onSelectDate={onSelectDate}
onViewChange={onViewChange}
toggleExpandFunc={toggleExpandFunc}
eventItemClick={eventClicked}
schedulerData={schedulerData}
/>
)
}
export default TeamCalendar Note that I use it in a class component so I haven't much tested it in function components import dayjs, { Dayjs } from 'dayjs';
import React, { Component } from 'react';
import "react-big-scheduler-stch/lib/css/style.css";
import Scheduler, {
EventItem, Resource, SchedulerData, SchedulerDataBehaviors, SchedulerDataConfig, SchedulerProps, View, ViewType
} from 'react-big-scheduler-stch';
export interface SState {
viewModel: SchedulerData
}
interface IProps<T extends EventItem = EventItem>
extends Omit<SchedulerProps<T>, 'schedulerData' | 'prevClick' | 'nextClick' | 'onSelectDate' | 'onViewChange' | 'toggleExpandFunc'> {
date?: string | Dayjs;
viewType?: ViewType;
showAgenda?: boolean;
isEventPerspective?: boolean;
newConfig?: SchedulerDataConfig;
newBehaviours?: SchedulerDataBehaviors;
schedulerDataConfig?: SchedulerDataConfig;
resources: Resource[];
events: EventItem[];
onYearChange?: (year: number) => void;
}
export default class BigScheduler<T extends EventItem = EventItem> extends Component<IProps<T>, SState> {
private viewDate = dayjs();
constructor(props: IProps<T>) {
super(props);
let schedulerData = new SchedulerData(props.date ?? dayjs(),
props.viewType ?? ViewType.Month,
props.showAgenda ?? false,
props.isEventPerspective ?? false,
props.schedulerDataConfig,
);
schedulerData.setResources(props.resources);
schedulerData.setEvents(props.events);
this.state = {
viewModel: schedulerData
}
}
render() {
const { viewModel } = this.state;
return (
<Scheduler
schedulerData={viewModel}
prevClick={this.prevClick}
nextClick={this.nextClick}
onSelectDate={this.onSelectDate}
onViewChange={this.onViewChange}
toggleExpandFunc={this.toggleExpandFunc}
{...this.props}
/>
)
}
onDateChange = (schedulerData: SchedulerData) => {
const newDate = schedulerData.getViewStartDate();
if (this.viewDate !== newDate) {
if (this.viewDate.year() !== newDate.year()) {
const { onYearChange } = this.props;
if (!!onYearChange) {
onYearChange(newDate.year())
}
}
this.viewDate = newDate;
}
}
prevClick = (schedulerData: SchedulerData) => {
schedulerData.prev();
this.onDateChange(schedulerData)
schedulerData.setEvents(this.props.events);
this.setState({
viewModel: schedulerData
})
}
nextClick = (schedulerData: SchedulerData) => {
schedulerData.next();
this.onDateChange(schedulerData)
schedulerData.setEvents(this.props.events);
this.setState({
viewModel: schedulerData
})
}
onViewChange = (schedulerData: SchedulerData, view: View) => {
const start = new Date();
schedulerData.setViewType(view.viewType, view.showAgenda, view.isEventPerspective);
schedulerData.setEvents(this.props.events);
this.setState({
viewModel: schedulerData
})
}
onSelectDate = (schedulerData: SchedulerData, date: string) => {
schedulerData.setDate(date);
this.onDateChange(schedulerData)
schedulerData.setEvents(this.props.events);
this.setState({
viewModel: schedulerData
})
}
toggleExpandFunc = (schedulerData: SchedulerData, slotId: string) => {
schedulerData.toggleExpandStatus(slotId);
this.setState({
viewModel: schedulerData
});
}
} |
2 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
they seem to not work, the scheduler renders on 12am no matter what i set it to
The text was updated successfully, but these errors were encountered: