305 | {hours.map((hour, index) => (
306 |
310 | {index > 0 && (
311 |
312 | {format(hour, "h a")}
313 |
314 | )}
315 |
316 | ))}
317 |
325 | {/* Positioned events */}
326 | {(processedDayEvents[dayIndex] ?? []).map((positionedEvent) => (
327 |
e.stopPropagation()}
338 | >
339 |
340 | handleEventClick(positionedEvent.event, e)}
344 | showTime
345 | height={positionedEvent.height}
346 | />
347 |
348 |
349 | ))}
350 |
351 | {/* Current time indicator - only show for today's column */}
352 | {currentTimeVisible && isToday(day) && (
353 |
362 | )}
363 | {hours.map((hour) => {
364 | const hourValue = getHours(hour)
365 | return (
366 |
370 | {/* Quarter-hour intervals */}
371 | {[0, 1, 2, 3].map((quarter) => {
372 | const quarterHourTime = hourValue + quarter * 0.25
373 | return (
374 | {
390 | const startTime = new Date(day)
391 | startTime.setHours(hourValue)
392 | startTime.setMinutes(quarter * 15)
393 | onEventCreate(startTime)
394 | }}
395 | />
396 | )
397 | })}
398 |
399 | )
400 | })}
401 |