Skip to content

Commit 28d4a84

Browse files
dhruvduttLakshya Ranganath
authored and
Lakshya Ranganath
committed
feat(DateRangePickerInput/web): support minRange (#195)
1 parent dab36ce commit 28d4a84

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/DateRangePickerInput/makeStories.js

+10
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,14 @@ export default (storiesOf, {
3232
onFromDateChange={action('onFromDateChange')}
3333
onToDateChange={action('onToDateChange')}
3434
/>
35+
))
36+
.add('same day', () => (
37+
<DateRangePickerInput
38+
name={{ from: 'TGIM', to: 'TGIF' }}
39+
disabledDays={[{ daysOfWeek: [0, 6] }]}
40+
minRange={0}
41+
onDateRangeChange={action('onDateRangeChange')}
42+
onFromDateChange={action('onFromDateChange')}
43+
onToDateChange={action('onToDateChange')}
44+
/>
3545
));

src/DateRangePickerInput/web/DateRangePickerInput.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { withTheme } from 'styled-components';
44
import { getIn } from 'formik';
55
import dateFnsIsValid from 'date-fns/is_valid';
66
import dateFnsIsBefore from 'date-fns/is_before';
7-
import dateFnsIsAfter from 'date-fns/is_after';
87
import dateFnsFormat from 'date-fns/format';
8+
import dateFnsDifferenceInCalendarDays from 'date-fns/difference_in_calendar_days';
99
import DayPicker from 'react-day-picker';
1010
import Card from '../../Card/web';
1111
import Flex from '../../Flex/web';
@@ -104,6 +104,7 @@ class DateRangePickerInput extends React.Component {
104104
onDateRangeChange,
105105
onFromDateChange,
106106
onToDateChange,
107+
minRange,
107108
} = this.props;
108109
const { formik } = this.context;
109110

@@ -144,7 +145,7 @@ class DateRangePickerInput extends React.Component {
144145
});
145146
}
146147
} else if (isOpen === 'to') {
147-
if (dateFnsIsAfter(day, from)) {
148+
if (dateFnsDifferenceInCalendarDays(day, from) >= minRange) {
148149
this.setState({
149150
isOpen: false,
150151
to: day,
@@ -377,6 +378,7 @@ DateRangePickerInput.propTypes = {
377378
to: PropTypes.bool,
378379
}),
379380
format: PropTypes.string,
381+
minRange: PropTypes.number,
380382
fromMonth: PropTypes.instanceOf(Date),
381383
toMonth: PropTypes.instanceOf(Date),
382384
modifiers: PropTypes.object,
@@ -424,6 +426,7 @@ DateRangePickerInput.defaultProps = {
424426
from: false,
425427
to: false,
426428
},
429+
minRange: 1,
427430
format: 'YYYY-MM-DD',
428431
onDateRangeChange: () => {},
429432
onFromDateChange: () => {},

0 commit comments

Comments
 (0)