Skip to content
This repository was archived by the owner on May 19, 2025. It is now read-only.

Commit f035cc7

Browse files
committed
requested changes
1 parent 83ac97c commit f035cc7

3 files changed

Lines changed: 19 additions & 13 deletions

File tree

demo/src/components/Main.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export default class Main extends Component {
7474
},
7575
dateRangeWithDisabled: {
7676
selection: {
77-
startDate: new Date(new Date().getTime() + 24 * 60 * 60 * 1000),
77+
startDate: addDays(new Date(), 4),
7878
endDate: null,
7979
key: 'selection',
8080
},
@@ -345,8 +345,8 @@ export default class Main extends Component {
345345
moveRangeOnFirstSelection={false}
346346
ranges={[this.state.dateRangeWithDisabled.selection]}
347347
className={'PreviewArea'}
348-
disabledDates={[new Date()]}
349-
minDate={new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000)}
348+
disabledDates={[new Date(), addDays(new Date(), 3)]}
349+
minDate={addDays(new Date(), -3)}
350350
/>
351351
</Section>
352352
</main>

src/components/Calendar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class Calendar extends PureComponent {
116116
setTimeout(() => this.focusToDate(this.state.focusedDate), 1);
117117
}
118118
}
119-
UNSAFE_componentWillReceiveProps(nextProps) {
119+
componentWillReceiveProps(nextProps) {
120120
const propMapper = {
121121
dateRange: 'ranges',
122122
date: 'date',

src/components/DateRange.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,15 @@ import PropTypes from 'prop-types';
33
import Calendar from './Calendar.js';
44
import { rangeShape } from './DayCell';
55
import { findNextRangeIndex, generateStyles } from '../utils.js';
6-
import { isBefore, differenceInCalendarDays, addDays, min, isWithinInterval } from 'date-fns';
6+
import {
7+
isBefore,
8+
differenceInCalendarDays,
9+
addDays,
10+
min,
11+
isWithinInterval,
12+
isAfter,
13+
max,
14+
} from 'date-fns';
715
import classnames from 'classnames';
816
import coreStyles from '../styles';
917

@@ -45,9 +53,9 @@ class DateRange extends Component {
4553
}
4654

4755
// reverse dates if startDate before endDate
48-
let hasBeenReversed = false;
56+
let isStartDateSelected = focusedRange[1] === 0;
4957
if (isBefore(endDate, startDate)) {
50-
hasBeenReversed = true;
58+
isStartDateSelected = !isStartDateSelected;
5159
[startDate, endDate] = [endDate, startDate];
5260
}
5361

@@ -59,12 +67,10 @@ class DateRange extends Component {
5967
);
6068

6169
if (inValidDatesWithinRange.length > 0) {
62-
if (hasBeenReversed) {
63-
const minDate = new Date(Math.min.apply(null, inValidDatesWithinRange));
64-
startDate = new Date(minDate.getTime() + 24 * 60 * 60 * 1000);
70+
if (isStartDateSelected) {
71+
startDate = addDays(max(disabledDates.filter(date => isBefore(date, endDate))), 1);
6572
} else {
66-
const maxDate = new Date(Math.max.apply(null, inValidDatesWithinRange));
67-
endDate = new Date(maxDate.getTime() - 24 * 60 * 60 * 1000);
73+
endDate = addDays(min(disabledDates.filter(date => isAfter(date, startDate))), -1);
6874
}
6975
}
7076

@@ -102,7 +108,7 @@ class DateRange extends Component {
102108
this.props.onRangeFocusChange && this.props.onRangeFocusChange(focusedRange);
103109
}
104110
updatePreview(val) {
105-
if (!val || !val.wasValid) {
111+
if (!val) {
106112
this.setState({ preview: null });
107113
return;
108114
}

0 commit comments

Comments
 (0)