import React, { PureComponent } from 'react'; import { Input, TimeZonePicker, Field, Switch, CollapsableSection } from '@grafana/ui'; import { rangeUtil, TimeZone } from '@grafana/data'; import isEmpty from 'lodash/isEmpty'; import { selectors } from '@grafana/e2e-selectors'; import { AutoRefreshIntervals } from './AutoRefreshIntervals'; interface Props { onTimeZoneChange: (timeZone: TimeZone) => void; onRefreshIntervalChange: (interval: string[]) => void; onNowDelayChange: (nowDelay: string) => void; onHideTimePickerChange: (hide: boolean) => void; refreshIntervals: string[]; timePickerHidden: boolean; nowDelay: string; timezone: TimeZone; } interface State { isNowDelayValid: boolean; } export class TimePickerSettings extends PureComponent { state: State = { isNowDelayValid: true }; onNowDelayChange = (event: React.FormEvent) => { const value = event.currentTarget.value; if (isEmpty(value)) { this.setState({ isNowDelayValid: true }); return this.props.onNowDelayChange(value); } if (rangeUtil.isValidTimeSpan(value)) { this.setState({ isNowDelayValid: true }); return this.props.onNowDelayChange(value); } this.setState({ isNowDelayValid: false }); }; onHideTimePickerChange = () => { this.props.onHideTimePickerChange(!this.props.timePickerHidden); }; onTimeZoneChange = (timeZone: string) => { if (typeof timeZone !== 'string') { return; } this.props.onTimeZoneChange(timeZone); }; render() { return ( ); } }