1- /* @flow */
21
32import * as React from 'react'
43import moment from 'moment'
54import { debounce } from 'lodash'
65
76const UPDATE_DEBOUNCE_INTERVAL = 700
87
9- type Props = { |
10- children : React . Node ,
11- dateOnly : boolean ,
12- fieldName ?: string ,
13- timeOnly : boolean ,
14- updateDatetime : ( datetime : string | null ) => void ,
15- uuid ?: UUID ,
16- value ?: moment$Moment
17- | }
18-
19- type State = { |
20- datetime : ?moment$Moment
21- | }
22-
23- class DatetimePicker extends React . Component < Props , State > {
8+
9+
10+ class DatetimePicker extends React . Component {
2411 state = {
2512 datetime : this . props . value
2613 }
@@ -34,15 +21,15 @@ class DatetimePicker extends React.Component<Props, State> {
3421 // text is input into the time field, the date field's datepicker also observes a change
3522 // and fires its onChange event. This boolean flag is used to prevent that extra onChange
3623 // event from firing.
37- textInput : ? boolean
24+ textInput
3825
39- componentDidUpdate ( prevProps : Props ) {
26+ componentDidUpdate ( prevProps ) {
4027 if ( prevProps . value !== this . props . value ) {
4128 this . setState ( { datetime : this . props . value } )
4229 }
4330 }
4431
45- handleChange = ( datetime : moment$Moment ) : void => {
32+ handleChange = ( datetime ) => {
4633 const { dateOnly, timeOnly, updateDatetime } = this . props
4734
4835 if ( this . textInput ) {
@@ -74,7 +61,7 @@ class DatetimePicker extends React.Component<Props, State> {
7461 handleChangeDebounced = debounce ( this . handleChange , UPDATE_DEBOUNCE_INTERVAL )
7562
7663 // Handles update of time picker via text input
77- handleChangeRaw = ( datetimeRaw : string ) : void => {
64+ handleChangeRaw = ( datetimeRaw ) => {
7865 const datetime = this . state . datetime || moment ( )
7966 const newDatetime = moment . utc ( datetimeRaw , 'h:mm A' , true )
8067
0 commit comments