import React, { ChangeEvent, FormEvent, PureComponent } from 'react'; import { SelectableValue } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { InlineFieldRow, VerticalGroup } from '@grafana/ui'; import { VariableSectionHeader } from '../editor/VariableSectionHeader'; import { VariableSelectField } from '../editor/VariableSelectField'; import { VariableSwitchField } from '../editor/VariableSwitchField'; import { VariableTextField } from '../editor/VariableTextField'; import { VariableEditorProps } from '../editor/types'; import { IntervalVariableModel } from '../types'; export interface Props extends VariableEditorProps {} export class IntervalVariableEditor extends PureComponent { onAutoChange = (event: ChangeEvent) => { this.props.onPropChange({ propName: 'auto', propValue: event.target.checked, updateOptions: true, }); }; onQueryChanged = (event: FormEvent) => { this.props.onPropChange({ propName: 'query', propValue: event.currentTarget.value, }); }; onQueryBlur = (event: FormEvent) => { this.props.onPropChange({ propName: 'query', propValue: event.currentTarget.value, updateOptions: true, }); }; onAutoCountChanged = (option: SelectableValue) => { this.props.onPropChange({ propName: 'auto_count', propValue: option.value, updateOptions: true, }); }; onAutoMinChanged = (event: FormEvent) => { this.props.onPropChange({ propName: 'auto_min', propValue: event.currentTarget.value, updateOptions: true, }); }; render() { const { variable } = this.props; const stepOptions = [1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500].map((count) => ({ label: `${count}`, value: count, })); const stepValue = stepOptions.find((o) => o.value === variable.auto_count) ?? stepOptions[0]; return ( {this.props.variable.auto ? ( <> ) : null} ); } }