Skip to content

Commit df50d34

Browse files
authored
fix(DatesRangeInput): error when allowed range doesn't contain today (#140)
* install prop-types types * upgrade typescript * import * instead of default from prop-types and react * fix(DatesRangeInput): error when allowed range doesn't contain today
1 parent 215194c commit df50d34

35 files changed

+62
-50
lines changed

example/calendar.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import moment from 'moment';
22
// import 'moment/locale/ru';
3-
import * as React from 'react';
4-
import * as ReactDOM from 'react-dom';
3+
import React from 'react';
4+
import ReactDOM from 'react-dom';
55
import {
66
Checkbox,
77
Form,

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"@babel/preset-react": "^7.0.0",
5454
"@babel/register": "^7.0.0",
5555
"@types/lodash": "^4.14.119",
56+
"@types/prop-types": "^15.7.1",
5657
"@types/react": "^16.7.18",
5758
"@types/react-dom": "^16.0.11",
5859
"babel-loader": "^8.0.4",

src/inputs/DateInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import isBoolean from 'lodash/isBoolean';
22
import isNil from 'lodash/isNil';
33
import invoke from 'lodash/invoke';
44
import moment, { Moment } from 'moment';
5-
import PropTypes from 'prop-types';
6-
import React from 'react';
5+
import * as PropTypes from 'prop-types';
6+
import * as React from 'react';
77

88
import CustomPropTypes from '../lib/CustomPropTypes';
99
import {

src/inputs/DateTimeInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import isNil from 'lodash/isNil';
33
import invoke from 'lodash/invoke';
44

55
import moment, { Moment } from 'moment';
6-
import PropTypes from 'prop-types';
7-
import React from 'react';
6+
import * as PropTypes from 'prop-types';
7+
import * as React from 'react';
88

99
import CustomPropTypes from '../lib/CustomPropTypes';
1010
import {

src/inputs/DatesRangeInput.tsx

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import invoke from 'lodash/invoke';
2-
import PropTypes from 'prop-types';
3-
import React from 'react';
2+
import * as PropTypes from 'prop-types';
3+
import * as React from 'react';
44

55
import CustomPropTypes from '../lib/CustomPropTypes';
66
import InputView from '../views/InputView';
@@ -157,7 +157,18 @@ class DatesRangeInput extends BaseInput<DatesRangeInputProps, BaseInputState> {
157157
start,
158158
end,
159159
} = parseDatesRange(value, dateFormat);
160+
160161
const markedParsed = parseArrayOrValue(marked, dateFormat, localization);
162+
const minDateParsed = parseValue(minDate, dateFormat, localization);
163+
const maxDateParsed = parseValue(maxDate, dateFormat, localization);
164+
165+
let initializeWith;
166+
167+
if (!initialDate && minDateParsed || maxDateParsed) {
168+
initializeWith = minDateParsed || maxDateParsed;
169+
} else {
170+
initializeWith = buildValue(start, initialDate, localization, dateFormat);
171+
}
161172

162173
return (
163174
<DatesRangePicker
@@ -168,7 +179,7 @@ class DatesRangeInput extends BaseInput<DatesRangeInputProps, BaseInputState> {
168179
closePopup={this.closePopup}
169180
onChange={this.handleSelect}
170181
dateFormat={dateFormat}
171-
initializeWith={buildValue(start, initialDate, localization, dateFormat)}
182+
initializeWith={initializeWith}
172183
start={start}
173184
end={end}
174185
marked={markedParsed}

src/inputs/MonthInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import invoke from 'lodash/invoke';
22
import moment from 'moment';
3-
import PropTypes from 'prop-types';
4-
import React from 'react';
3+
import * as PropTypes from 'prop-types';
4+
import * as React from 'react';
55

66
import CustomPropTypes from '../lib/CustomPropTypes';
77
import MonthPicker, {

src/inputs/MonthRangeInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import invoke from 'lodash/invoke';
2-
import PropTypes from 'prop-types';
3-
import React from 'react';
2+
import * as PropTypes from 'prop-types';
3+
import * as React from 'react';
44
import BaseInput, {BaseInputProps, BaseInputState, DateRelatedProps, MinMaxValueProps} from './BaseInput';
55

66
import CustomPropTypes from '../lib/CustomPropTypes';

src/inputs/TimeInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import isNil from 'lodash/isNil';
22
import invoke from 'lodash/invoke';
33

44
import moment from 'moment';
5-
import PropTypes from 'prop-types';
6-
import React from 'react';
5+
import * as PropTypes from 'prop-types';
6+
import * as React from 'react';
77

88
import { tick } from '../lib';
99
import {

src/inputs/YearInput.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import moment from 'moment';
2-
import PropTypes from 'prop-types';
3-
import React from 'react';
2+
import * as PropTypes from 'prop-types';
3+
import * as React from 'react';
44

55
import CustomPropTypes from '../lib/CustomPropTypes';
66
import YearPicker, {

src/lib/findHTMLElement.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ReactInstance } from 'react';
2-
import ReactDOM from 'react-dom';
2+
import * as ReactDOM from 'react-dom';
33

44
export default function findHTMLElement(e: ReactInstance): HTMLElement | undefined {
55
const el = ReactDOM.findDOMNode(e);

src/pickers/BasePicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import isNumber from 'lodash/isNumber';
33
import isNil from 'lodash/isNil';
44
import includes from 'lodash/includes';
55
import { Moment } from 'moment';
6-
import React from 'react';
6+
import * as React from 'react';
77

88
import {
99
RangeIndexes,

src/pickers/YearPicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import last from 'lodash/last';
99
import first from 'lodash/first';
1010
import some from 'lodash/some';
1111

12-
import React from 'react';
12+
import * as React from 'react';
1313

1414
import YearView from '../views/YearView';
1515
import {

src/pickers/dayPicker/DatesRangePicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import last from 'lodash/last';
55
import isNil from 'lodash/isNil';
66
import moment from 'moment';
77
import { Moment } from 'moment';
8-
import React from 'react';
8+
import * as React from 'react';
99

1010
import { RangeIndexes } from '../../views/BaseCalendarView';
1111
import DatesRangeView from '../../views/DatesRangeView';

src/pickers/dayPicker/DayPicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import includes from 'lodash/includes';
44
import isArray from 'lodash/isArray';
55
import some from 'lodash/some';
66

7-
import React from 'react';
7+
import * as React from 'react';
88

99
import DayView from '../../views/DayView';
1010
import { WEEKS_TO_DISPLAY } from '../../views/DayView';

src/pickers/monthPicker/MonthPicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import range from 'lodash/range';
33
import includes from 'lodash/includes';
44
import isNil from 'lodash/isNil';
55

6-
import React from 'react';
6+
import * as React from 'react';
77

88
import MonthView from '../../views/MonthView';
99
import {

src/pickers/monthPicker/MonthRangePicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import isNil from 'lodash/isNil';
55

66
import {Moment} from 'moment';
77
import moment from 'moment';
8-
import React from 'react';
8+
import * as React from 'react';
99

1010
import {RangeIndexes} from '../../views/BaseCalendarView';
1111
import MonthRangeView from '../../views/MonthRangeView';

src/pickers/timePicker/HourPicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import concat from 'lodash/concat';
66
import uniq from 'lodash/uniq';
77
import sortBy from 'lodash/sortBy';
88

9-
import React from 'react';
9+
import * as React from 'react';
1010

1111
import HourView from '../../views/HourView';
1212
import {

src/pickers/timePicker/MinutePicker.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import concat from 'lodash/concat';
44
import uniq from 'lodash/uniq';
55
import sortBy from 'lodash/sortBy';
66

7-
import React from 'react';
7+
import * as React from 'react';
88

99
import MinuteView from '../../views/MinuteView';
1010
import {

src/views/BaseCalendarView.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22
import { SemanticCOLORS } from 'semantic-ui-react';
33

44
export interface BaseCalendarViewProps {

src/views/Calendar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22
import { Table } from 'semantic-ui-react';
33

44
// interface PickerStyle {

src/views/CalendarBody/Body.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import isNil from 'lodash/isNil';
22
import isArray from 'lodash/isArray';
33

4-
import React from 'react';
4+
import * as React from 'react';
55
import { Table } from 'semantic-ui-react';
66

77
import { OnValueClickData } from '../BaseCalendarView';

src/views/CalendarBody/Cell.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import invoke from 'lodash/invoke';
22

3-
import React from 'react';
3+
import * as React from 'react';
44
import { Table, Label } from 'semantic-ui-react';
55

66
import { OnValueClickData } from '../BaseCalendarView';

src/views/CalendarHeader/Header.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import isNil from 'lodash/isNil';
22

3-
import React from 'react';
3+
import * as React from 'react';
44
import {
55
Icon,
66
Table,

src/views/CalendarHeader/HeaderRange.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22
import { Table } from 'semantic-ui-react';
33

44
const cellStyle = {

src/views/CalendarHeader/HeaderWeeks.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import moment from 'moment';
2-
import React from 'react';
2+
import * as React from 'react';
33
import { Table } from 'semantic-ui-react';
44

55
/** Return array of week day names.

src/views/DatesRangeView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import range from 'lodash/range';
22
import isNil from 'lodash/isNil';
33

4-
import React from 'react';
4+
import * as React from 'react';
55

66
import BaseCalendarView, {
77
BaseCalendarViewProps,

src/views/DayView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22

33
import BaseCalendarView, {
44
BaseCalendarViewProps,

src/views/HourView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22

33
import BaseCalendarView, {
44
BaseCalendarViewProps,

src/views/InputView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import isString from 'lodash/isString';
22
import invoke from 'lodash/invoke';
33

4-
import React from 'react';
4+
import * as React from 'react';
55
import {
66
Form,
77
FormInputProps,

src/views/MinuteView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22

33
import BaseCalendarView, {
44
BaseCalendarViewProps,

src/views/MonthRangeView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import range from 'lodash/range';
22
import isNil from 'lodash/isNil';
33

4-
import React from 'react';
4+
import * as React from 'react';
55
import {findHTMLElement} from '../lib';
66

77
import BaseCalendarView, {

src/views/MonthView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import * as React from 'react';
22

33
import BaseCalendarView, {
44
BaseCalendarViewProps,

src/views/YearView.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import last from 'lodash/last';
22
import first from 'lodash/first';
33

4-
import React from 'react';
4+
import * as React from 'react';
55

66
import BaseCalendarView, {
77
BaseCalendarViewProps,

tsconfig.json

+1-6
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@
1212
"es2015",
1313
"dom"
1414
],
15-
"module": "commonjs",
16-
"paths": {
17-
"react": [
18-
"node_modules/@types/react"
19-
]
20-
}
15+
"module": "commonjs"
2116
},
2217
"include": [
2318
"./src/**/*"

yarn.lock

+8-3
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,11 @@
858858
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.0.tgz#4c48fed958d6dcf9487195a0ef6456d5f6e0163a"
859859
integrity sha512-eItQyV43bj4rR3JPV0Skpl1SncRCdziTEK9/v8VwXmV6d/qOUO8/EuWeHBbCZcsfSHfzI5UyMJLCSXtxxznyZg==
860860

861+
"@types/prop-types@^15.7.1":
862+
version "15.7.1"
863+
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6"
864+
integrity sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==
865+
861866
"@types/react-dom@^16.0.11":
862867
version "16.8.3"
863868
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.3.tgz#6131b7b6158bc7ed1925a3374b88b7c00481f0cb"
@@ -6188,9 +6193,9 @@ typedarray@^0.0.6:
61886193
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
61896194

61906195
typescript@^3.2.2:
6191-
version "3.4.1"
6192-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.1.tgz#b6691be11a881ffa9a05765a205cb7383f3b63c6"
6193-
integrity sha512-3NSMb2VzDQm8oBTLH6Nj55VVtUEpe/rgkIzMir0qVoLyjDZlnMBva0U6vDiV3IH+sl/Yu6oP5QwsAQtHPmDd2Q==
6196+
version "3.4.5"
6197+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99"
6198+
integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==
61946199

61956200
unicode-canonical-property-names-ecmascript@^1.0.4:
61966201
version "1.0.4"

0 commit comments

Comments
 (0)