@@ -27,6 +27,7 @@ import TimeRangeDropdown from 'src/shared/components/TimeRangeDropdown'
2727import Results from 'src/dataExplorer/components/Results'
2828import { SubmitQueryButton } from 'src/timeMachine/components/SubmitQueryButton'
2929import QueryTime from 'src/dataExplorer/components/QueryTime'
30+ import NewDatePicker from 'src/shared/components/dateRangePicker/NewDatePicker'
3031
3132// Types
3233import { TimeRange } from 'src/types'
@@ -40,6 +41,7 @@ import {getWindowPeriodVariableFromVariables} from 'src/variables/utils/getWindo
4041
4142// Constants
4243import { TIME_RANGE_START , TIME_RANGE_STOP } from 'src/variables/constants'
44+ import { isFlagEnabled } from 'src/shared/utils/featureFlag'
4345
4446const FluxMonacoEditor = lazy (
4547 ( ) => import ( 'src/shared/components/FluxMonacoEditor' )
@@ -49,6 +51,7 @@ const fakeNotify = notify
4951
5052const rangeToParam = ( timeRange : TimeRange ) => {
5153 let timeRangeStart : string , timeRangeStop : string
54+ const durationRegExp = / ( [ 0 - 9 ] + ) ( y | m o | w | d | h | m s | s | m | u s | µ s | n s ) $ / g
5255
5356 if ( ! timeRange ) {
5457 timeRangeStart = timeRangeStop = null
@@ -57,6 +60,10 @@ const rangeToParam = (timeRange: TimeRange) => {
5760 timeRangeStart = '-' + timeRange . duration
5861 } else if ( timeRange . type === 'duration' ) {
5962 timeRangeStart = '-' + timeRange . lower
63+ } else if ( ! isNaN ( Number ( timeRange . lower ) ) || timeRange . lower === 'now()' ) {
64+ timeRangeStart = timeRange . lower
65+ } else if ( ! ! timeRange ?. lower ?. match ( durationRegExp ) ) {
66+ timeRangeStart = timeRange . lower
6067 } else if ( isNaN ( Date . parse ( timeRange . lower ) ) ) {
6168 timeRangeStart = null
6269 } else {
@@ -65,6 +72,10 @@ const rangeToParam = (timeRange: TimeRange) => {
6572
6673 if ( ! timeRange . upper ) {
6774 timeRangeStop = 'now()'
75+ } else if ( ! isNaN ( Number ( timeRange . upper ) ) || timeRange . upper === 'now()' ) {
76+ timeRangeStop = timeRange . upper
77+ } else if ( ! ! timeRange ?. upper ?. match ( durationRegExp ) ) {
78+ timeRangeStop = timeRange . upper
6879 } else if ( isNaN ( Date . parse ( timeRange . upper ) ) ) {
6980 timeRangeStop = null
7081 } else {
@@ -197,10 +208,14 @@ const ResultsPane: FC = () => {
197208 text ? ComponentStatus . Default : ComponentStatus . Disabled
198209 }
199210 />
200- < TimeRangeDropdown
201- timeRange = { range }
202- onSetTimeRange = { ( range : TimeRange ) => setRange ( range ) }
203- />
211+ { isFlagEnabled ( 'newTimeRangeComponent' ) ? (
212+ < NewDatePicker />
213+ ) : (
214+ < TimeRangeDropdown
215+ timeRange = { range }
216+ onSetTimeRange = { ( range : TimeRange ) => setRange ( range ) }
217+ />
218+ ) }
204219 < SubmitQueryButton
205220 className = "submit-btn"
206221 text = "Run"
0 commit comments