From 8948d5c40e05debf7a30203525b9830a035441b5 Mon Sep 17 00:00:00 2001 From: sawhil Date: Mon, 26 May 2025 23:21:05 +0530 Subject: [PATCH] fix: minor saved views handling bug --- frontend/src/components/ExplorerCard/utils.ts | 7 ++++++- .../ExplorerOptions/ExplorerOptions.tsx | 18 ++++++++++++++++++ .../preferences/configs/logsUpdaterConfig.ts | 19 ++++++++++++++----- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/ExplorerCard/utils.ts b/frontend/src/components/ExplorerCard/utils.ts index 1e681e42bd..0f90435f6f 100644 --- a/frontend/src/components/ExplorerCard/utils.ts +++ b/frontend/src/components/ExplorerCard/utils.ts @@ -6,6 +6,7 @@ import { initialQueriesMap, PANEL_TYPES } from 'constants/queryBuilder'; import { mapQueryDataFromApi } from 'lib/newQueryBuilder/queryBuilderMappers/mapQueryDataFromApi'; import isEqual from 'lodash-es/isEqual'; import { Query } from 'types/api/queryBuilder/queryBuilderData'; +import { DataSource } from 'types/common/queryBuilder'; import { DeleteViewHandlerProps, @@ -106,7 +107,11 @@ export const isQueryUpdatedInView = ({ !isEqual( options?.selectColumns, extraData && JSON.parse(extraData)?.selectColumns, - ) + ) || + (stagedQuery?.builder?.queryData?.[0]?.dataSource === DataSource.LOGS && + (!isEqual(options?.format, extraData && JSON.parse(extraData)?.format) || + !isEqual(options?.maxLines, extraData && JSON.parse(extraData)?.maxLines) || + !isEqual(options?.fontSize, extraData && JSON.parse(extraData)?.fontSize))) ); }; diff --git a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx index fa4a723f17..ef8a9f6c74 100644 --- a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx +++ b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx @@ -50,6 +50,7 @@ import { X, } from 'lucide-react'; import { useAppContext } from 'providers/App/App'; +import { FormattingOptions } from 'providers/preferences/types'; import { CSSProperties, Dispatch, @@ -259,17 +260,26 @@ function ExplorerOptions({ const getUpdatedExtraData = ( extraData: string | undefined, newSelectedColumns: BaseAutocompleteData[], + formattingOptions?: FormattingOptions, ): string => { let updatedExtraData; if (extraData) { const parsedExtraData = JSON.parse(extraData); parsedExtraData.selectColumns = newSelectedColumns; + if (formattingOptions) { + parsedExtraData.format = formattingOptions.format; + parsedExtraData.maxLines = formattingOptions.maxLines; + parsedExtraData.fontSize = formattingOptions.fontSize; + } updatedExtraData = JSON.stringify(parsedExtraData); } else { updatedExtraData = JSON.stringify({ color: Color.BG_SIENNA_500, selectColumns: newSelectedColumns, + format: formattingOptions?.format, + maxLines: formattingOptions?.maxLines, + fontSize: formattingOptions?.fontSize, }); } return updatedExtraData; @@ -278,6 +288,14 @@ function ExplorerOptions({ const updatedExtraData = getUpdatedExtraData( extraData, options?.selectColumns, + // pass this only for logs + sourcepage === DataSource.LOGS + ? { + format: options?.format, + maxLines: options?.maxLines, + fontSize: options?.fontSize, + } + : undefined, ); const { diff --git a/frontend/src/providers/preferences/configs/logsUpdaterConfig.ts b/frontend/src/providers/preferences/configs/logsUpdaterConfig.ts index dfb76e8a60..4b90a29394 100644 --- a/frontend/src/providers/preferences/configs/logsUpdaterConfig.ts +++ b/frontend/src/providers/preferences/configs/logsUpdaterConfig.ts @@ -44,13 +44,22 @@ const getLogsUpdaterConfig = ( } }, updateFormatting: (newFormatting: FormattingOptions, mode: string): void => { - // Always update URL - redirectWithOptionsData({ - ...defaultOptionsQuery, - ...newFormatting, - }); + if (mode === 'savedView') { + setSavedViewPreferences((prev) => { + if (!prev) return { columns: [], formatting: newFormatting }; + return { + ...prev, + formatting: newFormatting, + }; + }); + } if (mode === 'direct') { + redirectWithOptionsData({ + ...defaultOptionsQuery, + ...newFormatting, + }); + // Also update local storage const local = JSON.parse( localStorage.getItem(LOCALSTORAGE.LOGS_LIST_OPTIONS) || '{}',