From 75d189162b29a0b753c86adafecfa8e8687c35dc Mon Sep 17 00:00:00 2001 From: Yunus M Date: Fri, 8 Aug 2025 14:41:34 +0530 Subject: [PATCH] feat: migrate old saved columns keys to name (#8747) --- .../preferences/loader/usePreferenceLoader.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/frontend/src/providers/preferences/loader/usePreferenceLoader.ts b/frontend/src/providers/preferences/loader/usePreferenceLoader.ts index 31ef33387285..ded02397592e 100644 --- a/frontend/src/providers/preferences/loader/usePreferenceLoader.ts +++ b/frontend/src/providers/preferences/loader/usePreferenceLoader.ts @@ -1,6 +1,7 @@ /* eslint-disable sonarjs/cognitive-complexity */ /* eslint-disable no-empty */ import { TelemetryFieldKey } from 'api/v5/v5'; +import { has } from 'lodash-es'; import { useEffect, useState } from 'react'; import { DataSource } from 'types/common/queryBuilder'; @@ -8,6 +9,14 @@ import logsLoaderConfig from '../configs/logsLoaderConfig'; import tracesLoaderConfig from '../configs/tracesLoaderConfig'; import { FormattingOptions, Preferences } from '../types'; +const migrateColumns = (columns: any): any => + columns.map((column: any) => { + if (has(column, 'key') && !has(column, 'name')) { + return { ...column, name: column.key }; + } + return column; + }); + // Generic preferences loader that works with any config async function preferencesLoader(config: { priority: readonly string[]; @@ -26,11 +35,16 @@ async function preferencesLoader(config: { const validColumnsResult = results.find( ({ result }) => result.columns?.length, ); + const validFormattingResult = results.find(({ result }) => result.formatting); + const migratedColumns = validColumnsResult?.result.columns + ? migrateColumns(validColumnsResult?.result.columns) + : undefined; + // Combine valid results or fallback to default const finalResult = { - columns: validColumnsResult?.result.columns || config.default().columns, + columns: migratedColumns || config.default().columns, formatting: validFormattingResult?.result.formatting || config.default().formatting, };