Skip to content

Commit d00ceec

Browse files
committed
bug fixes
1 parent aaeb6d9 commit d00ceec

1 file changed

Lines changed: 17 additions & 7 deletions

File tree

src/components/widgets/DateTimePicker.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ export default class DateTimePicker extends Component {
1616
constructor(props) {
1717
super(props);
1818
const {time, date} = this.parseDateTime(props.value);
19-
const isValidTime = isDateTime(testDate + ' ' + time);
20-
const isValidDate = isDateTime(date + ' ' + testTime);
19+
const isValidTime = isDateTime(testDate + ' ' + time) || time === timePlaceholder;
20+
const isValidDate = isDateTime(date + ' ' + testTime) || date === datePlaceholder;
2121

2222
this.state = {
2323
calendarOpen: false,
@@ -113,11 +113,12 @@ export default class DateTimePicker extends Component {
113113

114114
parseDateTime(value) {
115115
const parsed = value.split(' ');
116-
return {date: parsed[0], time: parsed[1]};
116+
return {date: parsed[0], time: parsed[1] ? parsed[1] : ''};
117117
}
118118

119119
updateTime(value) {
120-
const update = this.state.dateValue + ' ' + value;
120+
const {date: currentDate} = this.parseDateTime(this.props.value);
121+
const update = currentDate + ' ' + value;
121122
const isValidTime = isDateTime(testDate + ' ' + value);
122123

123124
if (value === '') {
@@ -137,6 +138,10 @@ export default class DateTimePicker extends Component {
137138
return;
138139
}
139140

141+
if (value === timePlaceholder) {
142+
return;
143+
}
144+
140145
if (!isValidTime) {
141146
this.setState({
142147
timeInputClassName: 'datetimepicker-container-time-input--error',
@@ -146,7 +151,8 @@ export default class DateTimePicker extends Component {
146151
}
147152

148153
updateDate(value) {
149-
const update = value + ' ' + this.state.timeValue;
154+
const {time: currentTime} = this.parseDateTime(this.props.value);
155+
const update = value + ' ' + currentTime;
150156
const isValidDate = isDateTime(value + ' ' + testTime);
151157

152158
if (isValidDate) {
@@ -166,6 +172,10 @@ export default class DateTimePicker extends Component {
166172
return;
167173
}
168174

175+
if (value === datePlaceholder) {
176+
return;
177+
}
178+
169179
if (!isValidDate) {
170180
this.setState({
171181
dateValue: value,
@@ -184,6 +194,7 @@ export default class DateTimePicker extends Component {
184194
value={this.state.dateValue}
185195
editableClassName={this.state.dateInputClassName}
186196
onUpdate={this.updateDate}
197+
placeHolder={datePlaceholder}
187198
/>
188199
<div className="datetimepicker-container-icons">
189200
<CalendarMultiselectIcon
@@ -232,7 +243,7 @@ export default class DateTimePicker extends Component {
232243
<TextInput
233244
value={this.state.timeValue}
234245
onUpdate={this.updateTime}
235-
placeHolder="hh:mm:ss.xxx"
246+
placeHolder={timePlaceholder}
236247
editableClassName={this.state.timeInputClassName}
237248
/>
238249
<span className="datetimepicker-date-units">
@@ -247,7 +258,6 @@ export default class DateTimePicker extends Component {
247258
DateTimePicker.propTypes = {
248259
value: PropTypes.string.isRequired,
249260
onChange: PropTypes.func.isRequired,
250-
placeholder: PropTypes.string.isRequired,
251261
};
252262

253263
DateTimePicker.contextTypes = {

0 commit comments

Comments
 (0)