1
1
import _ from 'lodash'
2
- import moment from 'moment'
2
+ import moment from 'moment-timezone '
3
3
import React , { Component } from 'react'
4
4
import PropTypes from 'prop-types'
5
5
import styles from './PhaseInput.module.scss'
6
6
import cn from 'classnames'
7
- import DayPickerInput from 'react-day-picker/DayPickerInput'
8
- import TimePicker from 'rc-time-picker'
9
- import {
10
- formatDate ,
11
- parseDate
12
- } from 'react-day-picker/moment'
13
7
import 'react-day-picker/lib/style.css'
14
8
import 'rc-time-picker/assets/index.css'
15
9
import Select from '../Select'
10
+ import DateTime from '@nateradebaugh/react-datetime'
11
+ import isAfter from 'date-fns/isAfter'
12
+ import subDays from 'date-fns/subDays'
13
+ import '@nateradebaugh/react-datetime/scss/styles.scss'
16
14
17
- const timeFormat = 'HH:mm'
18
- const dateFormat = 'MM/DD/YYYY '
15
+ const dateFormat = 'MM/DD/YYYY HH:mm'
16
+ // const tcTimeZone = 'America/New_York '
19
17
20
18
class PhaseInput extends Component {
19
+ constructor ( props ) {
20
+ super ( props )
21
+
22
+ this . onDateChange = this . onDateChange . bind ( this )
23
+ }
24
+
25
+ onDateChange ( e ) {
26
+ const { onUpdatePhase } = this . props
27
+
28
+ onUpdatePhase ( moment ( e , dateFormat ) )
29
+ }
30
+
21
31
render ( ) {
22
32
const { phase, onUpdateSelect, onUpdatePhase, withDates, withDuration, endDate, readOnly } = this . props
23
33
if ( _ . isEmpty ( phase ) ) return null
34
+
24
35
const date = moment ( phase . date ) . format ( dateFormat )
25
- const time = moment ( phase . date )
26
36
27
37
return (
28
38
< div className = { styles . container } >
@@ -33,13 +43,32 @@ class PhaseInput extends Component {
33
43
withDuration && endDate && (
34
44
< div className = { styles . previewDates } >
35
45
< span > Ends:</ span >
36
- { moment ( endDate ) . format ( `${ dateFormat } ${ timeFormat } ` ) }
46
+ { moment ( endDate ) . local ( ) . format ( `${ dateFormat } ` ) }
37
47
</ div >
38
48
)
39
49
}
40
50
</ div >
41
51
< div className = { cn ( styles . field , styles . col2 ) } >
42
52
{
53
+ withDates && (
54
+ < div className = { styles . dayPicker } >
55
+ {
56
+ readOnly ? (
57
+ < span className = { styles . readOnlyValue } > { date } </ span >
58
+ )
59
+ : (
60
+ < DateTime
61
+ value = { date }
62
+ onChange = { this . onDateChange }
63
+ isValidDate = { ( current ) => {
64
+ const yesterday = subDays ( new Date ( ) , 1 )
65
+ return isAfter ( current , yesterday )
66
+ } }
67
+ /> ) }
68
+ </ div >
69
+ )
70
+ }
71
+ { /* {
43
72
withDates && (
44
73
<div className={styles.dayPicker}>
45
74
{readOnly ? (
@@ -62,7 +91,7 @@ class PhaseInput extends Component {
62
91
/>)}
63
92
</div>
64
93
)
65
- }
94
+ } */ }
66
95
{
67
96
withDuration && (
68
97
< div className = { styles . durationPicker } >
0 commit comments