Skip to content

Commit 54440cf

Browse files
fix: weekly view slots not clickable with overlay calendar (calcom#25484)
1 parent 4331510 commit 54440cf

5 files changed

Lines changed: 21 additions & 9 deletions

File tree

packages/features/bookings/Booker/components/LargeCalendar.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export const LargeCalendar = ({
4545

4646
// HACK: force rerender when overlay events change
4747
// Sine we dont use react router here we need to force rerender (ATOM SUPPORT)
48-
useEffect(() => {}, [displayOverlay]);
48+
useEffect(() => { }, [displayOverlay]);
4949

5050
const overlayEventsForDate = useMemo(() => {
5151
if (!overlayEvents || !displayOverlay) return [];
@@ -57,6 +57,7 @@ export const LargeCalendar = ({
5757
title: "Busy",
5858
options: {
5959
status: "ACCEPTED",
60+
borderOnly: true,
6061
},
6162
} as CalendarEvent;
6263
});

packages/features/calendars/weeklyview/components/Calendar.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ function CalendarInner(props: CalendarComponentProps) {
8080
className={classNames(
8181
"bg-default dark:bg-cal-muted ring-muted sticky left-0 z-10 w-16 flex-none ring-1",
8282
showBorder &&
83-
(borderColor === "subtle"
84-
? "border-subtle border-l border-r"
85-
: "border-default border-l border-r")
83+
(borderColor === "subtle"
84+
? "border-subtle border-l border-r"
85+
: "border-default border-l border-r")
8686
)}
8787
/>
8888
<div
@@ -91,10 +91,10 @@ function CalendarInner(props: CalendarComponentProps) {
9191
showBackgroundPattern === false
9292
? undefined
9393
: {
94-
backgroundColor: "var(--disabled-gradient-background)",
95-
background:
96-
"repeating-linear-gradient(-45deg, var(--disabled-gradient-background), var(--disabled-gradient-background) 2.5px, var(--disabled-gradient-foreground) 2.5px, var(--disabled-gradient-foreground) 5px)",
97-
}
94+
backgroundColor: "var(--disabled-gradient-background)",
95+
background:
96+
"repeating-linear-gradient(-45deg, var(--disabled-gradient-background), var(--disabled-gradient-background) 2.5px, var(--disabled-gradient-foreground) 2.5px, var(--disabled-gradient-foreground) 5px)",
97+
}
9898
}>
9999
<HorizontalLines
100100
hours={hours}
@@ -129,6 +129,7 @@ function CalendarInner(props: CalendarComponentProps) {
129129
className="relative"
130130
key={i}
131131
style={{
132+
gridColumnStart: i + 1,
132133
gridRow: `1 / span ${numberOfGridStopsPerDay}`,
133134
}}>
134135
{/* While startDate < endDate: */}

packages/features/calendars/weeklyview/components/event/Event.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ const eventClasses = cva(
3434
true: "bg-inverted text-inverted border border-transparent",
3535
false: "",
3636
},
37+
borderOnly: {
38+
true: "bg-transparent border-[1.5px] border-subtle border-dashed opacity-60",
39+
false: "",
40+
},
3741
},
3842
}
3943
);
@@ -91,6 +95,7 @@ export function Event({
9195
status: options?.status,
9296
disabled,
9397
selected,
98+
borderOnly: options?.borderOnly ?? false,
9499
}),
95100
options?.className,
96101
isHovered && "ring-brand-default shadow-lg ring-2 ring-offset-0"

packages/features/calendars/weeklyview/components/event/EventList.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useMemo, useState } from "react";
22
import { shallow } from "zustand/shallow";
33

44
import dayjs from "@calcom/dayjs";
5+
import classNames from "@calcom/ui/classNames";
56

67
import { useCalendarStore } from "../../state/store";
78
import { calculateEventLayouts, createLayoutMap } from "../../utils/overlap";
@@ -77,7 +78,10 @@ export function EventList({ day }: Props) {
7778
return (
7879
<div
7980
key={`${event.id}-${eventStart.toISOString()}`}
80-
className="absolute transition-all duration-100 ease-out"
81+
className={classNames(
82+
"absolute transition-all duration-100 ease-out",
83+
event.options?.borderOnly && "pointer-events-none"
84+
)}
8185
data-testid={event.options?.["data-test-id"]}
8286
onMouseEnter={() => setHoveredEventId(event.id)}
8387
onMouseLeave={() => setHoveredEventId(null)}

packages/features/calendars/weeklyview/types/events.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ export interface CalendarEvent {
1515
className?: string;
1616
bookingId?: number;
1717
"data-test-id"?: string;
18+
borderOnly?: boolean;
1819
};
1920
}

0 commit comments

Comments
 (0)