Skip to content

Commit 0a320a6

Browse files
authored
Merge pull request #345 from rwilson504/Issue-339
fixes #339
2 parents 0b96dd2 + b89be92 commit 0a320a6

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

Calendar/Calendar/CalendarControl.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
momentLocalizer,
1414
View,
1515
SlotInfo,
16-
EventProps,ResourceHeaderProps
16+
EventProps, ResourceHeaderProps
1717
} from "react-big-calendar";
1818
import * as CalendarUtils from "./utils";
1919
import { StartOfWeek } from "date-arithmetic";
@@ -23,7 +23,7 @@ import * as moment from "moment";
2323
import { useCalendarHourRange, useDayLayoutAlgorithm, useEventSelectable, useCalendarSelectable, useCalendarStepAndTimeslots, useCalendarDate, useCalendarPopup, useEventHeaderFormat, useCalendarView, useCalendarData, useCalendarColors } from "./hooks";
2424
import { eventPropsGetter, dayPropsGetter } from "./getters";
2525
import { handleSlotSelect, handleEventSelected, handleEventKeyPress, handleOnView, handleNavigate } from "./handlers";
26-
import { timeGutterHeaderRenderer, resourceHeaderRenderer, agendaEventRenderer } from "./renderers";
26+
import { timeGutterHeaderRenderer, resourceHeaderRenderer, agendaEventRenderer,timeSlotWrapperRenderer } from "./renderers";
2727
import { tooltipAccessor } from "./accessors/tooltipAccessor";
2828
export interface IProps {
2929
pcfContext: ComponentFramework.Context<IInputs>;
@@ -206,12 +206,13 @@ export const CalendarControl: React.FC<IProps> = (props) => {
206206
className={`rbc-view-${calendarView}`}
207207
eventPropGetter={_eventPropsGetter}
208208
dayPropGetter={_dayPropsGetter}
209-
tooltipAccessor= {tooltipAccessor}
209+
tooltipAccessor={tooltipAccessor}
210210
components={{
211211
agenda: {
212212
event: agendaEvent,
213213
},
214214
timeGutterHeader: timeGutterHeader,
215+
timeSlotWrapper: (props) => timeSlotWrapperRenderer({ ...props, timeslots }),
215216
}}
216217
/>
217218
) : (
@@ -243,13 +244,14 @@ export const CalendarControl: React.FC<IProps> = (props) => {
243244
className={`rbc-view-${calendarView}`}
244245
eventPropGetter={_eventPropsGetter}
245246
dayPropGetter={_dayPropsGetter}
246-
tooltipAccessor= {tooltipAccessor}
247+
tooltipAccessor={tooltipAccessor}
247248
components={{
248249
agenda: {
249250
event: agendaEvent,
250251
},
251252
resourceHeader: resourceHeader,
252253
timeGutterHeader: timeGutterHeader,
254+
timeSlotWrapper: (props) => timeSlotWrapperRenderer({ ...props, timeslots }),
253255
}}
254256
/>
255257
);

Calendar/Calendar/renderers/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from "./resourceHeaderRenderer";
22
export * from "./agendaEventRenderer"
3-
export * from "./timeGutterHeaderRenderer"
3+
export * from "./timeGutterHeaderRenderer"
4+
export * from "./timeSlotWrapperRenderer"
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import * as React from "react";
2+
3+
// Modularized time slot wrapper renderer for react-big-calendar
4+
// Encapsulate minHeight logic here, allowing for dynamic calculation if needed
5+
export function timeSlotWrapperRenderer(props: { children?: React.ReactNode; timeslots?: number }) {
6+
const { children, timeslots } = props;
7+
let minHeight = 40;
8+
if (typeof timeslots === "number") {
9+
minHeight = timeslots === 1 ? 40 : 20;
10+
}
11+
return <div style={{ minHeight }}>{children}</div>;
12+
}

0 commit comments

Comments
 (0)