@@ -21,7 +21,6 @@ export default class DateTimePicker extends Component {
21
21
format : PropTypes . string ,
22
22
timePickerDelay : PropTypes . number ,
23
23
okLabel : PropTypes . string ,
24
- defaultTime : PropTypes . oneOfType ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
25
24
name : PropTypes . string ,
26
25
showCurrentDateByDefault : PropTypes . bool ,
27
26
returnMomentDate : PropTypes . bool ,
@@ -48,8 +47,9 @@ export default class DateTimePicker extends Component {
48
47
hideCalendarDate : PropTypes . bool ,
49
48
firstDayOfWeek : PropTypes . number ,
50
49
onDatePickerDismiss : PropTypes . func ,
51
- maxDate : PropTypes . oneOf ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
52
- minDate : PropTypes . oneOf ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
50
+ value : PropTypes . oneOfType ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
51
+ maxDate : PropTypes . oneOfType ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
52
+ minDate : PropTypes . oneOfType ( [ PropTypes . object , PropTypes . string , PropTypes . number ] ) ,
53
53
54
54
// TimePicker
55
55
onTimeSelected : PropTypes . func ,
@@ -62,6 +62,7 @@ export default class DateTimePicker extends Component {
62
62
}
63
63
64
64
static defaultProps = {
65
+ value : new Date ( ) ,
65
66
okLabel : 'OK' ,
66
67
minDate : undefined ,
67
68
maxDate : undefined ,
@@ -70,7 +71,6 @@ export default class DateTimePicker extends Component {
70
71
timePickerDelay : 150 ,
71
72
className : 'datetime-container' ,
72
73
textFieldClassName : 'datetime-input' ,
73
- defaultTime : null ,
74
74
autoOkDatePicker : true ,
75
75
datePickerMode : 'portrait' ,
76
76
openToYearSelection : false ,
@@ -104,14 +104,17 @@ export default class DateTimePicker extends Component {
104
104
onDatePickerDismiss : ( ) => { } ,
105
105
}
106
106
107
- constructor ( props ) {
108
- super ( props ) ;
107
+ getInitialTime = ( ) => ( this . props . value ? moment ( this . props . value ) : null )
109
108
110
- this . state = {
111
- dateTime : props . defaultTime ? moment ( this . props . defaultTime ) : null ,
112
- } ;
109
+ state = {
110
+ dateTime : this . getInitialTime ( ) ,
113
111
}
114
112
113
+ componentDidUpdate = ( prevProps ) => {
114
+ if ( prevProps . value !== this . props . value ) {
115
+ this . setState ( { dateTime : this . getInitialTime ( ) } ) ;
116
+ }
117
+ }
115
118
116
119
/*
117
120
* Get current selected date by user
@@ -205,6 +208,7 @@ export default class DateTimePicker extends Component {
205
208
onDateSelected,
206
209
onTimeSelected,
207
210
disabled,
211
+ value,
208
212
...other
209
213
} = this . props ;
210
214
@@ -230,7 +234,7 @@ export default class DateTimePicker extends Component {
230
234
231
235
< DatePicker
232
236
ref = { ( node ) => { this . datePicker = node ; } }
233
- initialDate = { this . getDateOrCurrentTime ( ) }
237
+ value = { this . getDateOrCurrentTime ( ) }
234
238
maxDate = { this . getDateOrNull ( maxDate ) }
235
239
minDate = { this . getDateOrNull ( minDate ) }
236
240
okLabel = { okLabel }
@@ -248,7 +252,7 @@ export default class DateTimePicker extends Component {
248
252
249
253
< TimePicker
250
254
ref = { ( node ) => { this . timePicker = node ; } }
251
- initialTime = { this . getDateOrCurrentTime ( ) }
255
+ value = { this . getDateOrCurrentTime ( ) }
252
256
onAccept = { this . selectTime }
253
257
bodyStyle = { timePickerBodyStyle }
254
258
onShow = { onTimePickerShow }
0 commit comments