import React from 'react'; import DateRangePicker from 'react-daterange-picker' import { getDateRangeFromValue, getDateRangeLabel, dateRangeValues, CUSTOM_RANGE, moment, DATE_RANGE_VALUES } from 'App/dateRange'; import {Button} from 'antd' import {TimePicker} from 'App/components/shared/DatePicker' import styles from './dateRangePopup.module.css'; export default class DateRangePopup extends React.PureComponent { state = { range: this.props.selectedDateRange || moment.range(), value: null, } selectCustomRange = (range) => { range.end.endOf('day'); this.setState({ range, value: CUSTOM_RANGE, }); } setRangeTimeStart = value => { const { range } = this.state; const newStart = range.start.clone().set({ hour: value.hour(), minute: value.minute() }); if (newStart.isAfter(range.end)) { return; } const _range = moment.range( newStart, range.end, ) this.setState({ range: _range, value: CUSTOM_RANGE, }); } setRangeTimeEnd = value => { const { range } = this.state; const newEnd = range.end.clone().set({ hour: value.hour(), minute: value.minute() }); if (newEnd.isBefore(range.start)) { return; } const _range = moment.range( range.start, newEnd, ) this.setState({ range: _range, value: CUSTOM_RANGE, }); } selectValue = (value) => { const range = getDateRangeFromValue(value); this.setState({range, value}); } onApply = () => this.props.onApply(this.state.range, this.state.value) render() { const {onCancel, onApply} = this.props; const {range} = this.state; const rangeForDisplay = range.clone(); rangeForDisplay.start.startOf('day'); rangeForDisplay.end.startOf('day'); const selectionRange = { startDate: range.start.toDate(), endDate: range.end.toDate(), key: 'selection', } return (