|
1 | 1 | import classnames from "classnames"; |
2 | 2 | import { ReactElement } from "react"; |
3 | | -import { Calendar, dateFnsLocalizer, EventPropGetter } from "react-big-calendar"; |
| 3 | +import { Calendar, dateFnsLocalizer, EventPropGetter, View } from "react-big-calendar"; |
4 | 4 | import { CalendarPreviewProps } from "../typings/CalendarProps"; |
5 | 5 | import { createConfigurableToolbar, CustomToolbar } from "./components/Toolbar"; |
6 | 6 | import { eventPropGetter, format, getDay, parse, startOfWeek } from "./utils/calendar-utils"; |
@@ -75,27 +75,35 @@ export function preview(props: CalendarPreviewProps): ReactElement { |
75 | 75 | // Cast eventPropGetter to satisfy preview Calendar generic |
76 | 76 | const previewEventPropGetter = eventPropGetter as unknown as EventPropGetter<(typeof events)[0]>; |
77 | 77 |
|
| 78 | + const isCustomView = props.view === "custom"; |
78 | 79 | const toolbar = |
79 | | - props.view === "custom" && props.toolbarItems?.length |
| 80 | + isCustomView && props.toolbarItems?.length |
80 | 81 | ? createConfigurableToolbar( |
81 | 82 | props.toolbarItems.map(i => ({ |
82 | 83 | itemType: i.itemType, |
83 | 84 | position: i.position, |
84 | 85 | caption: i.caption, |
85 | | - renderMode: i.renderMode |
| 86 | + renderMode: i.renderMode, |
| 87 | + customButtonTooltip: undefined, |
| 88 | + customButtonStyle: i.buttonStyle |
86 | 89 | })) as any |
87 | 90 | ) |
88 | 91 | : CustomToolbar; |
89 | 92 |
|
| 93 | + const defaultView = isCustomView ? props.defaultViewCustom : props.defaultViewStandard; |
| 94 | + const views: View[] = isCustomView |
| 95 | + ? (["day", "week", "month", "work_week"] as View[]) |
| 96 | + : (["day", "week", "month"] as View[]); |
| 97 | + |
90 | 98 | return ( |
91 | 99 | <div className={classnames("widget-events-preview", "widget-calendar", className)} style={wrapperStyle}> |
92 | 100 | <Calendar |
93 | 101 | components={{ toolbar }} |
94 | | - defaultView={props.defaultViewStandard} |
| 102 | + defaultView={defaultView} |
95 | 103 | events={events} |
96 | 104 | localizer={localizer} |
97 | 105 | messages={{ ...localizer.messages, work_week: "Custom" }} |
98 | | - views={["day", "week", "month", "work_week"]} |
| 106 | + views={views} |
99 | 107 | eventPropGetter={previewEventPropGetter} |
100 | 108 | /> |
101 | 109 | </div> |
|
0 commit comments