Skip to content

Commit 603c256

Browse files
Merge pull request #47 from linked-planet/dev
Dev
2 parents 360cd9c + 2ff6942 commit 603c256

File tree

6 files changed

+160
-557
lines changed

6 files changed

+160
-557
lines changed

library/src/components/DropdownMenu.tsx

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -172,29 +172,51 @@ function ItemGroup({
172172
hasSeparator,
173173
children,
174174
className,
175+
titleClassName,
176+
separatorClassName,
175177
style,
178+
titleStyle,
179+
separatorStyle,
180+
...props
176181
}: {
177182
title?: string
178183
hasSeparator?: boolean
179184
children: React.ReactNode
180185
className?: string
186+
titleClassName?: string
187+
separatorClassName?: string
181188
style?: React.CSSProperties
189+
titleStyle?: React.CSSProperties
190+
separatorStyle?: React.CSSProperties
182191
}) {
183-
return useMemo(
184-
() => (
185-
<RDd.Group className={twMerge("py-3", className)} style={style}>
186-
{hasSeparator && (
187-
<RDd.Separator className="border-border border-t-2 pb-4" />
188-
)}
189-
{title && (
190-
<RDd.Label className="px-4 py-3 text-[11px] font-bold uppercase">
191-
{title}
192-
</RDd.Label>
193-
)}
194-
{children}
195-
</RDd.Group>
196-
),
197-
[children, hasSeparator, title, className, style],
192+
return (
193+
<RDd.Group
194+
{...props}
195+
className={twMerge("py-3", className)}
196+
style={style}
197+
>
198+
{hasSeparator && (
199+
<RDd.Separator
200+
className={twMerge(
201+
"border-border border-t-2 pb-4",
202+
separatorClassName,
203+
)}
204+
style={separatorStyle}
205+
/>
206+
)}
207+
{title && (
208+
<RDd.Label
209+
className={twMerge(
210+
"px-4 py-3 text-[11px] font-bold uppercase",
211+
titleClassName,
212+
)}
213+
style={titleStyle}
214+
>
215+
{title}
216+
</RDd.Label>
217+
)}
218+
{children}
219+
</RDd.Group>
198220
)
199221
}
200222

library/src/components/timetable/TimeTable.tsx

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
type onTimeRangeSelectedType,
3434
} from "./TimeTableSelectionStore"
3535
import { getStartAndEndSlot, useGroupRows } from "./useGoupRows"
36+
import { twMerge } from "tailwind-merge"
3637

3738
export 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

182186
const 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

Comments
 (0)