From 7e1301b8d256801dd11ff42fc1e0012270fab089 Mon Sep 17 00:00:00 2001 From: Shaheer Kochai Date: Tue, 18 Feb 2025 11:37:14 +0430 Subject: [PATCH] fix: prefer local storage list options over url query options and handle an edge case (#7120) * fix(LogsExplorer): prefer local storage options of url query options * fix(LogsExplorer): don't add timestamp/body if local storage selectColumns exist & already migrated * fix(LogsExplorer): improve query migration logic for local storage options --------- Co-authored-by: Nityananda Gohain --- frontend/src/pages/LogsExplorer/index.tsx | 27 ++++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/frontend/src/pages/LogsExplorer/index.tsx b/frontend/src/pages/LogsExplorer/index.tsx index e4b1b82da3..b988a43b5f 100644 --- a/frontend/src/pages/LogsExplorer/index.tsx +++ b/frontend/src/pages/LogsExplorer/index.tsx @@ -94,10 +94,7 @@ function LogsExplorer(): JSX.Element { if (!data) return null; try { - const parsed = JSON.parse(data); - const hasValidColumns = Array.isArray(parsed?.selectColumns); - - return hasValidColumns ? parsed.selectColumns : null; + return JSON.parse(data); } catch { return null; } @@ -132,16 +129,11 @@ function LogsExplorer(): JSX.Element { // Skip if already migrated if (query.version) return query; - // Case 1: query has columns - if (query.selectColumns.length > 0) { - return { - ...query, - version: 1, - selectColumns: mergeWithRequiredColumns(query.selectColumns), - }; + if (logListOptionsFromLocalStorage?.version) { + return logListOptionsFromLocalStorage; } - // Case 2: No query columns in but we have localStorage columns + // Case 1: we have localStorage columns if (logListOptionsFromLocalStorage?.selectColumns?.length > 0) { return { ...query, @@ -152,6 +144,15 @@ function LogsExplorer(): JSX.Element { }; } + // Case 2: No query columns in localStorage in but query has columns + if (query.selectColumns.length > 0) { + return { + ...query, + version: 1, + selectColumns: mergeWithRequiredColumns(query.selectColumns), + }; + } + // Case 3: No columns anywhere, use defaults return { ...query, @@ -159,7 +160,7 @@ function LogsExplorer(): JSX.Element { selectColumns: defaultLogsSelectedColumns, }; }, - [mergeWithRequiredColumns, logListOptionsFromLocalStorage?.selectColumns], + [mergeWithRequiredColumns, logListOptionsFromLocalStorage], ); useEffect(() => {