@@ -33,6 +33,7 @@ import {
3333 type onTimeRangeSelectedType ,
3434} from "./TimeTableSelectionStore"
3535import { getStartAndEndSlot , useGroupRows } from "./useGoupRows"
36+ import { twMerge } from "tailwind-merge"
3637
3738export interface TimeSlotBooking {
3839 title : string
@@ -177,6 +178,9 @@ export interface LPTimeTableProps<
177178 * For those who require to start the week on Sunday, this can be set to true.
178179 */
179180 weekStartsOnSunday ?: boolean
181+
182+ className ?: string
183+ style ?: React . CSSProperties
180184}
181185
182186const nowbarUpdateIntervall = 1000 * 60 // 1 minute
@@ -232,6 +236,8 @@ const LPTimeTableImpl = <G extends TimeTableGroup, I extends TimeSlotBooking>({
232236 dateHeaderTextFormat,
233237 weekStartsOnSunday = false ,
234238 disableMessages = false ,
239+ className,
240+ style,
235241} : LPTimeTableProps < G , I > ) => {
236242 // if we have viewType of days, we need to round the start and end date to the start and end of the day
237243 const { setMessage, translatedMessage } = useTimeTableMessage (
@@ -456,57 +462,57 @@ const LPTimeTableImpl = <G extends TimeTableGroup, I extends TimeSlotBooking>({
456462 />
457463 ) }
458464 </ div >
459- < div className = "size-full relative" >
460- < TimeTableIdentProvider ident = { storeIdent } >
461- < div
462- className = "overflow-auto relative"
463- style = { {
464- height : `calc(${ height } - ${ inlineMessageRef . current ?. clientHeight } px)` ,
465- } }
466- ref = { intersectionContainerRef }
465+
466+ < TimeTableIdentProvider ident = { storeIdent } >
467+ < div
468+ className = { twMerge ( "overflow-auto relative" , className ) }
469+ style = { {
470+ height : `calc(${ height } - ${ inlineMessageRef . current ?. clientHeight } px)` ,
471+ ...style ,
472+ } }
473+ ref = { intersectionContainerRef }
474+ >
475+ < table
476+ className = {
477+ "table w-full table-fixed border-separate border-spacing-0 select-none overflow-auto"
478+ }
479+ ref = { tableRef }
467480 >
468- < table
469- className = {
470- "table w-full table-fixed border-separate border-spacing-0 select-none overflow-auto"
481+ < LPTimeTableHeader
482+ slotsArray = { slotsArray }
483+ columnWidth = { columnWidth }
484+ groupHeaderColumnWidth = { groupHeaderColumnWidth }
485+ startDate = { startDate }
486+ endDate = { endDate }
487+ viewType = { viewType }
488+ timeFrameDay = { timeFrameDay }
489+ showTimeSlotHeader = {
490+ showTimeSlotHeader === undefined ||
491+ showTimeSlotHeader === null
492+ ? viewType === "hours"
493+ : showTimeSlotHeader
471494 }
472- ref = { tableRef }
473- >
474- < LPTimeTableHeader
475- slotsArray = { slotsArray }
476- columnWidth = { columnWidth }
477- groupHeaderColumnWidth = { groupHeaderColumnWidth }
478- startDate = { startDate }
479- endDate = { endDate }
480- viewType = { viewType }
481- timeFrameDay = { timeFrameDay }
482- showTimeSlotHeader = {
483- showTimeSlotHeader === undefined ||
484- showTimeSlotHeader === null
485- ? viewType === "hours"
486- : showTimeSlotHeader
495+ dateHeaderTextFormat = { dateHeaderTextFormat }
496+ weekStartsOnSunday = { weekStartsOnSunday }
497+ locale = { locale }
498+ ref = { tableHeaderRef }
499+ />
500+ < tbody ref = { tableBodyRef } className = "table-fixed" >
501+ < TimeTableRows < G , I >
502+ entries = { entries }
503+ selectedTimeSlotItem = { selectedTimeSlotItem }
504+ onTimeSlotItemClick = { onTimeSlotItemClick }
505+ onGroupClick = { onGroupClick }
506+ groupRows = { groupRows }
507+ intersectionContainerRef = {
508+ intersectionContainerRef
487509 }
488- dateHeaderTextFormat = { dateHeaderTextFormat }
489- weekStartsOnSunday = { weekStartsOnSunday }
490- locale = { locale }
491- ref = { tableHeaderRef }
510+ headerRef = { tableHeaderRef }
492511 />
493- < tbody ref = { tableBodyRef } className = "table-fixed" >
494- < TimeTableRows < G , I >
495- entries = { entries }
496- selectedTimeSlotItem = { selectedTimeSlotItem }
497- onTimeSlotItemClick = { onTimeSlotItemClick }
498- onGroupClick = { onGroupClick }
499- groupRows = { groupRows }
500- intersectionContainerRef = {
501- intersectionContainerRef
502- }
503- headerRef = { tableHeaderRef }
504- />
505- </ tbody >
506- </ table >
507- </ div >
508- </ TimeTableIdentProvider >
509- </ div >
512+ </ tbody >
513+ </ table >
514+ </ div >
515+ </ TimeTableIdentProvider >
510516 </ >
511517 )
512518}
0 commit comments