diff --git a/public/app/features/transformers/configFromQuery/configFromQuery.ts b/public/app/features/transformers/configFromQuery/configFromQuery.ts index cb447701d58..e6f657dfcfb 100644 --- a/public/app/features/transformers/configFromQuery/configFromQuery.ts +++ b/public/app/features/transformers/configFromQuery/configFromQuery.ts @@ -77,18 +77,19 @@ export function extractConfigFromQuery(options: ConfigFromQueryTransformOptions, if (options.isDisplayNameMapping) { const nameFrame = data.find((d) => d.refId === options.configRefId); - const mappingName = options.mappings.find((mapping) => mapping.handlerKey === 'mappings.value')?.fieldName; - if (nameFrame && mappingName !== undefined) { - const mapKeyField = nameFrame.fields.find((frameNameField) => frameNameField.name === mappingName); - const keyIndex = mapKeyField?.values.indexOf(field.name); - if (keyIndex !== undefined) { - const mappingTextName = options.mappings.find( - (mapping) => mapping.handlerKey === 'mappings.text' - )?.fieldName; - - if (mappingTextName !== undefined) { - const valField = nameFrame.fields.find((field) => field.name === mappingTextName); - dataConfig.displayName = valField?.values[keyIndex!]; + const mappingValueName = options.mappings.find( + (mapping) => mapping.handlerKey === 'mappings.value' + )?.fieldName; + const mappingTextName = options.mappings.find((mapping) => mapping.handlerKey === 'mappings.text')?.fieldName; + if (nameFrame && mappingValueName !== undefined && mappingTextName !== undefined) { + const mapValueField = nameFrame.fields.find((frameNameField) => frameNameField.name === mappingValueName); + const mapTextField = nameFrame.fields.find((field) => field.name === mappingTextName); + const keyIndex = mapValueField?.values.indexOf(field.name) ?? -1; + if (keyIndex !== -1 && mapTextField !== undefined) { + const newDisplayName = mapTextField.values[keyIndex]; + // only add the property if a new name + if (newDisplayName !== undefined) { + dataConfig.displayName = newDisplayName; } } }