@@ -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,16 +236,14 @@ 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 (
238244 ! disableMessages ,
239245 )
240246
241- useEffect ( ( ) => {
242- console . log ( "START DATE" , startDate . format ( ) , endDate . format ( ) )
243- } , [ startDate , endDate ] )
244-
245247 // change on viewType
246248 useEffect ( ( ) => {
247249 setMessage ?.( undefined ) // clear the message on time frame change
@@ -460,57 +462,57 @@ const LPTimeTableImpl = <G extends TimeTableGroup, I extends TimeSlotBooking>({
460462 />
461463 ) }
462464 </ div >
463- < div className = "size-full relative" >
464- < TimeTableIdentProvider ident = { storeIdent } >
465- < div
466- className = "overflow-auto relative"
467- style = { {
468- height : `calc(${ height } - ${ inlineMessageRef . current ?. clientHeight } px)` ,
469- } }
470- 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 }
471480 >
472- < table
473- className = {
474- "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
475494 }
476- ref = { tableRef }
477- >
478- < LPTimeTableHeader
479- slotsArray = { slotsArray }
480- columnWidth = { columnWidth }
481- groupHeaderColumnWidth = { groupHeaderColumnWidth }
482- startDate = { startDate }
483- endDate = { endDate }
484- viewType = { viewType }
485- timeFrameDay = { timeFrameDay }
486- showTimeSlotHeader = {
487- showTimeSlotHeader === undefined ||
488- showTimeSlotHeader === null
489- ? viewType === "hours"
490- : 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
491509 }
492- dateHeaderTextFormat = { dateHeaderTextFormat }
493- weekStartsOnSunday = { weekStartsOnSunday }
494- locale = { locale }
495- ref = { tableHeaderRef }
510+ headerRef = { tableHeaderRef }
496511 />
497- < tbody ref = { tableBodyRef } className = "table-fixed" >
498- < TimeTableRows < G , I >
499- entries = { entries }
500- selectedTimeSlotItem = { selectedTimeSlotItem }
501- onTimeSlotItemClick = { onTimeSlotItemClick }
502- onGroupClick = { onGroupClick }
503- groupRows = { groupRows }
504- intersectionContainerRef = {
505- intersectionContainerRef
506- }
507- headerRef = { tableHeaderRef }
508- />
509- </ tbody >
510- </ table >
511- </ div >
512- </ TimeTableIdentProvider >
513- </ div >
512+ </ tbody >
513+ </ table >
514+ </ div >
515+ </ TimeTableIdentProvider >
514516 </ >
515517 )
516518}
0 commit comments