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 <nityanandagohain@gmail.com>
This commit is contained in:
Shaheer Kochai 2025-02-18 11:37:14 +04:30 committed by GitHub
parent eba2049a4d
commit 7e1301b8d2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -94,10 +94,7 @@ function LogsExplorer(): JSX.Element {
if (!data) return null; if (!data) return null;
try { try {
const parsed = JSON.parse(data); return JSON.parse(data);
const hasValidColumns = Array.isArray(parsed?.selectColumns);
return hasValidColumns ? parsed.selectColumns : null;
} catch { } catch {
return null; return null;
} }
@ -132,16 +129,11 @@ function LogsExplorer(): JSX.Element {
// Skip if already migrated // Skip if already migrated
if (query.version) return query; if (query.version) return query;
// Case 1: query has columns if (logListOptionsFromLocalStorage?.version) {
if (query.selectColumns.length > 0) { return logListOptionsFromLocalStorage;
return {
...query,
version: 1,
selectColumns: mergeWithRequiredColumns(query.selectColumns),
};
} }
// Case 2: No query columns in but we have localStorage columns // Case 1: we have localStorage columns
if (logListOptionsFromLocalStorage?.selectColumns?.length > 0) { if (logListOptionsFromLocalStorage?.selectColumns?.length > 0) {
return { return {
...query, ...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 // Case 3: No columns anywhere, use defaults
return { return {
...query, ...query,
@ -159,7 +160,7 @@ function LogsExplorer(): JSX.Element {
selectColumns: defaultLogsSelectedColumns, selectColumns: defaultLogsSelectedColumns,
}; };
}, },
[mergeWithRequiredColumns, logListOptionsFromLocalStorage?.selectColumns], [mergeWithRequiredColumns, logListOptionsFromLocalStorage],
); );
useEffect(() => { useEffect(() => {