@@ -463,22 +463,20 @@ function ScheduleView({
463463 const eventProps = calendar . getEventProps ( event )
464464 const { style, isSplitEvent } = eventProps
465465
466- const eventStartDate = event . start . split ( 'T' ) [ 0 ]
467- const eventEndDate = event . end . split ( 'T' ) [ 0 ]
466+ const originalStart = event . _originalStart ?? event . start
467+ const originalEnd = event . _originalEnd ?? event . end
468+ const originalStartDate = originalStart . split ( 'T' ) [ 0 ]
469+ const originalEndDate = originalEnd . split ( 'T' ) [ 0 ]
468470 const segmentStartDate = eventProps . start . split ( 'T' ) [ 0 ]
469471 const segmentEndDate = eventProps . end . split ( 'T' ) [ 0 ]
470472
471- // First segment: event starts on this day (exact match or same date)
472- const isFirstSegment =
473- event . start === eventProps . start ||
474- eventStartDate === segmentStartDate
473+ // First segment: this segment's start date matches the original event's start date
474+ const isFirstSegment = originalStartDate === segmentStartDate
475475
476- // Last segment: event ends on this day
477- // For multi-day events, check if this segment's date matches the event's end date
476+ // Last segment: this segment's date matches the original event's end date
478477 const isLastSegment =
479- event . end === eventProps . end ||
480- eventEndDate === segmentEndDate ||
481- eventEndDate === segmentStartDate
478+ originalEndDate === segmentEndDate ||
479+ originalEndDate === segmentStartDate
482480
483481 const isBeingResized =
484482 resizeState . isResizing && resizeState . eventId === event . id
@@ -593,13 +591,8 @@ function ScheduleView({
593591
594592 // Show bottom handle if:
595593 // 1. Not a split event (single day), OR
596- // 2. This segment's date matches the event's end date (last segment)
597- // Check if the event ends on this day by comparing the dayDate with eventEndDate
598- const showBottomHandle =
599- ! isSplitEvent ||
600- dayDate === eventEndDate ||
601- eventEndDate === segmentStartDate ||
602- eventEndDate === segmentEndDate
594+ // 2. This is the last segment (matches original event's end date)
595+ const showBottomHandle = ! isSplitEvent || isLastSegment
603596
604597 // Check if this segment is being actively resized (original or new target)
605598 const isActivelyResized = isBeingResized && previewStyle !== null
@@ -630,8 +623,8 @@ function ScheduleView({
630623 { ...getResizeHandleProps (
631624 event . id ,
632625 'top' ,
633- event . start ,
634- event . end ,
626+ event . _originalStart ?? event . start ,
627+ event . _originalEnd ?? event . end ,
635628 ) }
636629 />
637630 ) }
@@ -655,8 +648,8 @@ function ScheduleView({
655648 { ...getResizeHandleProps (
656649 event . id ,
657650 'bottom' ,
658- event . start ,
659- event . end ,
651+ event . _originalStart ?? event . start ,
652+ event . _originalEnd ?? event . end ,
660653 ) }
661654 />
662655 ) }
0 commit comments