import React, { FormEvent } from 'react'; import { SelectableValue } from '@grafana/data'; import { InlineField, InlineFieldRow, InlineSwitch, Input, Label, Select } from '@grafana/ui'; import { EditorProps } from '../QueryEditor'; import { SimulationQuery } from '../types'; export const SimulationQueryEditor = ({ onChange, query }: EditorProps) => { const simQuery = query.sim ?? ({} as SimulationQuery); const simKey = simQuery.key ?? ({} as typeof simQuery.key); const options = [ { label: 'Flight', value: 'flight' }, { label: 'Sine', value: 'sine' }, { label: 'Tank', value: 'tank' }, ]; const onUpdateKey = (key: typeof simQuery.key) => { onChange({ ...query, sim: { ...simQuery, key } }); }; const onUIDChanged = (e: FormEvent) => { const { value } = e.target as HTMLInputElement; onUpdateKey({ ...simKey, uid: value ?? undefined }); }; const onTickChanged = (e: FormEvent) => { const tick = e.currentTarget.valueAsNumber; onUpdateKey({ ...simKey, tick }); }; const onTypeChange = (v: SelectableValue) => { onUpdateKey({ ...simKey, type: v.value! }); }; const onToggleStream = () => { onChange({ ...query, sim: { ...simQuery, stream: !simQuery.stream } }); }; const onToggleLast = () => { onChange({ ...query, sim: { ...simQuery, last: !simQuery.last } }); }; return ( <> ); };