diff --git a/app/[locale]/calendar/page.tsx b/app/[locale]/calendar/page.tsx
index ed252007..df64b196 100644
--- a/app/[locale]/calendar/page.tsx
+++ b/app/[locale]/calendar/page.tsx
@@ -236,10 +236,12 @@ export default function CalendarPage() {
const openCreateModal = useCallback((date?: Date, endDate?: Date) => {
setEditEvent(null);
- setDefaultModalDate(date || selectedDate);
+ const d = date || selectedDate;
+ setDefaultModalDate(d);
setDefaultModalEndDate(endDate);
+ setSelectedDate(d);
setShowEventModal(true);
- }, [selectedDate]);
+ }, [selectedDate, setSelectedDate]);
const openEditModal = useCallback((event: CalendarEvent) => {
setEditEvent(event);
@@ -638,6 +640,7 @@ export default function CalendarPage() {
onSelectEvent={handleSelectEvent}
onHoverEvent={handleHoverEvent}
onHoverLeave={handleHoverLeave}
+ onCreateAtTime={openCreateModal}
firstDayOfWeek={firstDayOfWeek}
isMobile={isMobile}
/>
@@ -690,7 +693,7 @@ export default function CalendarPage() {
return (
{viewContent}
- {isLoadingEvents && calendars.length > 0 && (
+ {isLoadingEvents && calendars.length > 0 && events.length === 0 && (
@@ -791,6 +794,7 @@ export default function CalendarPage() {
{!isMobile && showEventModal && (
void;
onHoverEvent?: (event: CalendarEvent, anchorRect: DOMRect) => void;
onHoverLeave?: () => void;
+ onCreateAtTime?: (date: Date) => void;
firstDayOfWeek?: number;
isMobile?: boolean;
}
@@ -34,6 +35,7 @@ export function CalendarMonthView({
onSelectEvent,
onHoverEvent,
onHoverLeave,
+ onCreateAtTime,
firstDayOfWeek = 1,
isMobile,
}: CalendarMonthViewProps) {
@@ -165,6 +167,7 @@ export function CalendarMonthView({
aria-selected={selected}
aria-label={fullDateLabel}
onClick={() => onSelectDate(day)}
+ onDoubleClick={() => onCreateAtTime?.(day)}
onDragOver={(e) => handleCellDragOver(e, key)}
onDragLeave={handleCellDragLeave}
onDrop={(e) => handleCellDrop(e, day)}
diff --git a/hooks/use-time-grid-interactions.ts b/hooks/use-time-grid-interactions.ts
index fb2f55f2..675628cc 100644
--- a/hooks/use-time-grid-interactions.ts
+++ b/hooks/use-time-grid-interactions.ts
@@ -239,9 +239,10 @@ export function useTimeGridInteractions({
clearTimeout(clickTimerRef.current);
clickTimerRef.current = null;
}
- const key = format(day, "yyyy-MM-dd");
- setQuickCreate({ dayKey: key, day, hour, top: hour * hourHeight });
- }, [hourHeight]);
+ const d = new Date(day);
+ d.setHours(hour, 0, 0, 0);
+ onCreateRange(d);
+ }, [onCreateRange]);
const handleQuickCreateSubmit = useCallback(async (title: string) => {
if (!quickCreate) return;