mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* Add unique ids to query editor fields * Update public/app/plugins/datasource/testdata/components/RandomWalkEditor.tsx Co-authored-by: Ryan McKinley <ryantxu@gmail.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import React, { ChangeEvent } from 'react';
|
|
import { EditorProps } from '../QueryEditor';
|
|
import { InlineField, InlineFieldRow, Input } from '@grafana/ui';
|
|
import { PulseWaveQuery } from '../types';
|
|
|
|
const fields = [
|
|
{ label: 'Step', id: 'timeStep', placeholder: '60', tooltip: 'The number of seconds between datapoints.' },
|
|
{
|
|
label: 'On Count',
|
|
id: 'onCount',
|
|
placeholder: '3',
|
|
tooltip: 'The number of values within a cycle, at the start of the cycle, that should have the onValue.',
|
|
},
|
|
{ label: 'Off Count', id: 'offCount', placeholder: '6', tooltip: 'The number of offValues within the cycle.' },
|
|
{
|
|
label: 'On Value',
|
|
id: 'onValue',
|
|
placeholder: '1',
|
|
tooltip: 'The value for "on values", may be an int, float, or null.',
|
|
},
|
|
{
|
|
label: 'Off Value',
|
|
id: 'offValue',
|
|
placeholder: '1',
|
|
tooltip: 'The value for "off values", may be a int, float, or null.',
|
|
},
|
|
];
|
|
|
|
export const PredictablePulseEditor = ({ onChange, query }: EditorProps) => {
|
|
// Convert values to numbers before saving
|
|
const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {
|
|
const { name, value } = e.target;
|
|
|
|
onChange({ target: { name, value: Number(value) } });
|
|
};
|
|
|
|
return (
|
|
<InlineFieldRow>
|
|
{fields.map(({ label, id, placeholder, tooltip }) => {
|
|
return (
|
|
<InlineField label={label} labelWidth={14} key={id} tooltip={tooltip}>
|
|
<Input
|
|
width={32}
|
|
type="number"
|
|
name={id}
|
|
id={`pulseWave.${id}-${query.refId}`}
|
|
value={query.pulseWave?.[id as keyof PulseWaveQuery]}
|
|
placeholder={placeholder}
|
|
onChange={onInputChange}
|
|
/>
|
|
</InlineField>
|
|
);
|
|
})}
|
|
</InlineFieldRow>
|
|
);
|
|
};
|