@@ -341,29 +341,41 @@ export default class Day extends Component<DayProps> {
341341 return false ;
342342 }
343343
344- const { day, startDate, selectsStart } = this . props ;
344+ const { day, startDate, selectsStart, swapRange , selectsRange } = this . props ;
345345 const selectingDate = this . props . selectingDate ?? this . props . preSelection ;
346346
347347 if ( selectsStart ) {
348348 return isSameDay ( day , selectingDate ) ;
349- } else {
350- return isSameDay ( day , startDate ) ;
351349 }
350+
351+ if ( selectsRange && swapRange && startDate && selectingDate ) {
352+ return isSameDay ( day , isBefore ( selectingDate , startDate ) ? selectingDate : startDate ) ;
353+ }
354+
355+ return isSameDay ( day , startDate ) ;
352356 } ;
353357
354358 isSelectingRangeEnd = ( ) => {
355359 if ( ! this . isInSelectingRange ( ) ) {
356360 return false ;
357361 }
358362
359- const { day, endDate, selectsEnd, selectsRange } = this . props ;
363+ const { day, endDate, selectsEnd, selectsRange, swapRange , startDate } = this . props ;
360364 const selectingDate = this . props . selectingDate ?? this . props . preSelection ;
361365
362- if ( selectsEnd || selectsRange ) {
366+ if ( selectsEnd ) {
363367 return isSameDay ( day , selectingDate ) ;
364- } else {
365- return isSameDay ( day , endDate ) ;
366368 }
369+
370+ if ( selectsRange && swapRange && startDate && selectingDate ) {
371+ return isSameDay ( day , isBefore ( selectingDate , startDate ) ? startDate : selectingDate ) ;
372+ }
373+
374+ if ( selectsRange ) {
375+ return isSameDay ( day , selectingDate ) ;
376+ }
377+
378+ return isSameDay ( day , endDate ) ;
367379 } ;
368380
369381 isRangeStart = ( ) => {
0 commit comments