From 19ceb927b124e0cccf4d57b751b0e1cc397bc642 Mon Sep 17 00:00:00 2001 From: Nathan Marrs Date: Thu, 5 Oct 2023 01:26:30 +0200 Subject: [PATCH] [v10.1.x] Geomap: Fix tooltip field name regression (#75926) Geomap: Fix tooltip field name regression (#75511) (cherry picked from commit 7875dbc6eb2b728715c88412b4ef04ca3455a4ee) --- packages/grafana-data/src/field/fieldState.test.ts | 5 +++++ packages/grafana-data/src/field/fieldState.ts | 4 +++- .../app/features/visualization/data-hover/DataHoverView.tsx | 5 ++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/grafana-data/src/field/fieldState.test.ts b/packages/grafana-data/src/field/fieldState.test.ts index 979f3b90837..d5aaed20017 100644 --- a/packages/grafana-data/src/field/fieldState.test.ts +++ b/packages/grafana-data/src/field/fieldState.test.ts @@ -15,6 +15,11 @@ function checkScenario(scenario: TitleScenario): string { return getFieldDisplayName(field, frame, scenario.frames); } +jest.mock('lodash', () => ({ + ...jest.requireActual('lodash'), + isEqual: jest.fn().mockImplementation((obj1, obj2) => obj1 === obj2), +})); + describe('getFrameDisplayName', () => { it('Should return frame name if set', () => { const frame = toDataFrame({ diff --git a/packages/grafana-data/src/field/fieldState.ts b/packages/grafana-data/src/field/fieldState.ts index e9b6588c1f4..8f8ea26f9ee 100644 --- a/packages/grafana-data/src/field/fieldState.ts +++ b/packages/grafana-data/src/field/fieldState.ts @@ -1,3 +1,5 @@ +import { isEqual } from 'lodash'; + import { DataFrame, Field, TIME_SERIES_VALUE_FIELD_NAME, FieldType, TIME_SERIES_TIME_FIELD_NAME } from '../types'; import { formatLabels } from '../utils/labels'; @@ -162,7 +164,7 @@ function getUniqueFieldName(field: Field, frame?: DataFrame) { for (let i = 0; i < frame.fields.length; i++) { const otherField = frame.fields[i]; - if (field === otherField) { + if (isEqual(field, otherField)) { foundSelf = true; if (dupeCount > 0) { diff --git a/public/app/features/visualization/data-hover/DataHoverView.tsx b/public/app/features/visualization/data-hover/DataHoverView.tsx index 5683bddfb17..b9a6c8f3bbe 100644 --- a/public/app/features/visualization/data-hover/DataHoverView.tsx +++ b/public/app/features/visualization/data-hover/DataHoverView.tsx @@ -72,8 +72,11 @@ export const DataHoverView = ({ data, rowIndex, columnIndex, sortOrder, mode, he }); } + // Sanitize field by removing hovered property to fix unique display name issue + const { hovered, ...sanitizedField } = field; + displayValues.push({ - name: getFieldDisplayName(field, data), + name: getFieldDisplayName(sanitizedField, data), value, valueString: formattedValueToString(fieldDisplay), highlight: field.hovered,