From 8499d1408d93befffb4fed781c8afc7e1705db57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 9 Nov 2020 14:48:08 +0100 Subject: [PATCH] TestData: Fix issue with numeric inputs in TestData query editor (#28936) --- .../datasource/testdata/QueryEditor.tsx | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/public/app/plugins/datasource/testdata/QueryEditor.tsx b/public/app/plugins/datasource/testdata/QueryEditor.tsx index be6e2be7556..e589cdcc812 100644 --- a/public/app/plugins/datasource/testdata/QueryEditor.tsx +++ b/public/app/plugins/datasource/testdata/QueryEditor.tsx @@ -23,9 +23,6 @@ const endpoints = [ { value: 'annotations', label: 'Annotations' }, ]; -// Fields that need to be transformed to numbers -const numberFields = ['lines', 'seriesCount', 'timeStep']; - const selectors = editorSelectors.components.DataSource.TestData.QueryTab; export interface EditorProps { @@ -80,22 +77,29 @@ export const QueryEditor = ({ query, datasource, onChange, onRunQuery }: Props) }; const onInputChange = (e: FormEvent) => { - const { name, value } = e.target as HTMLInputElement | HTMLTextAreaElement; - let newValue: Partial = { [name]: value }; + const { name, value, type } = e.target as HTMLInputElement | HTMLTextAreaElement; + let newValue: any = value; - if (name === 'levelColumn') { - newValue = { levelColumn: (e.target as HTMLInputElement).checked }; - } else if (numberFields.includes(name)) { - newValue = { [name]: Number(value) }; + if (type === 'number') { + newValue = Number(value); } - onUpdate({ ...query, ...newValue }); + if (name === 'levelColumn') { + newValue = (e.target as HTMLInputElement).checked; + } + + onUpdate({ ...query, [name]: newValue }); }; const onFieldChange = (field: string) => (e: ChangeEvent) => { - const { name, value } = e.target as HTMLInputElement; - const formattedValue = numberFields.includes(name) ? Number(value) : value; - onUpdate({ ...query, [field]: { ...query[field as keyof TestDataQuery], [name]: formattedValue } }); + const { name, value, type } = e.target as HTMLInputElement; + let newValue: any = value; + + if (type === 'number') { + newValue = Number(value); + } + + onUpdate({ ...query, [field]: { ...query[field as keyof TestDataQuery], [name]: newValue } }); }; const onEndPointChange = ({ value }: SelectableValue) => {