From 816fd1c6fbbf1a7f517f2f533677958816f5f588 Mon Sep 17 00:00:00 2001 From: sawhil Date: Wed, 4 Jun 2025 00:37:18 +0530 Subject: [PATCH] fix: minor bug and pr comments regarding better resync --- .../ExplorerOptions/ExplorerOptions.tsx | 9 +++++++++ .../preferences/loader/usePreferenceLoader.ts | 16 +++++++++++++--- .../preferences/sync/usePreferenceSync.ts | 3 ++- .../preferences/updater/usePreferenceUpdater.ts | 6 +++--- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx index ef8a9f6c74..025c4d8494 100644 --- a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx +++ b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx @@ -316,6 +316,7 @@ function ExplorerOptions({ }; const onUpdateQueryHandler = (): void => { + console.log('uncaught ued', updatedExtraData); updateViewAsync( { compositeQuery: mapCompositeQueryFromQuery(currentQuery, panelType), @@ -524,6 +525,14 @@ function ExplorerOptions({ color, selectColumns: options.selectColumns, version: 1, + ...// pass this only for logs + (sourcepage === DataSource.LOGS + ? { + format: options?.format, + maxLines: options?.maxLines, + fontSize: options?.fontSize, + } + : {}), }), notifications, panelType: panelType || PANEL_TYPES.LIST, diff --git a/frontend/src/providers/preferences/loader/usePreferenceLoader.ts b/frontend/src/providers/preferences/loader/usePreferenceLoader.ts index ffaaad3684..09145da6e2 100644 --- a/frontend/src/providers/preferences/loader/usePreferenceLoader.ts +++ b/frontend/src/providers/preferences/loader/usePreferenceLoader.ts @@ -58,9 +58,11 @@ async function tracesPreferencesLoader(): Promise<{ export function usePreferenceLoader({ dataSource, reSync, + setReSync, }: { dataSource: DataSource; - reSync: number; + reSync: boolean; + setReSync: (value: boolean) => void; }): { preferences: Preferences | null; loading: boolean; @@ -89,10 +91,18 @@ export function usePreferenceLoader({ setError(e as Error); } finally { setLoading(false); + // Reset reSync back to false after loading is complete + if (reSync) { + setReSync(false); + } } } - loadPreferences(); - }, [dataSource, reSync]); + + // Only load preferences on initial mount or when reSync is true + if (loading || reSync) { + loadPreferences(); + } + }, [dataSource, reSync, setReSync, loading]); return { preferences, loading, error }; } diff --git a/frontend/src/providers/preferences/sync/usePreferenceSync.ts b/frontend/src/providers/preferences/sync/usePreferenceSync.ts index d357a5b5d5..1ae94c9371 100644 --- a/frontend/src/providers/preferences/sync/usePreferenceSync.ts +++ b/frontend/src/providers/preferences/sync/usePreferenceSync.ts @@ -56,10 +56,11 @@ export function usePreferenceSync({ // We are using a reSync state because we have URL updates as well as local storage updates // and we want to make sure we are always using the latest preferences - const [reSync, setReSync] = useState(0); + const [reSync, setReSync] = useState(false); const { preferences, loading, error } = usePreferenceLoader({ dataSource, reSync, + setReSync, }); const { updateColumns, updateFormatting } = usePreferenceUpdater({ diff --git a/frontend/src/providers/preferences/updater/usePreferenceUpdater.ts b/frontend/src/providers/preferences/updater/usePreferenceUpdater.ts index cb9a45fe54..db61b3ccb9 100644 --- a/frontend/src/providers/preferences/updater/usePreferenceUpdater.ts +++ b/frontend/src/providers/preferences/updater/usePreferenceUpdater.ts @@ -46,7 +46,7 @@ export function usePreferenceUpdater({ }: { dataSource: DataSource; mode: string; - setReSync: Dispatch>; + setReSync: Dispatch>; setSavedViewPreferences: Dispatch>; }): { updateColumns: (newColumns: BaseAutocompleteData[]) => void; @@ -63,11 +63,11 @@ export function usePreferenceUpdater({ return { updateColumns: (newColumns: BaseAutocompleteData[]): void => { updater.updateColumns(newColumns, mode); - setReSync((prev: number) => prev + 1); + setReSync(true); }, updateFormatting: (newFormatting: FormattingOptions): void => { updater.updateFormatting(newFormatting, mode); - setReSync((prev: number) => prev + 1); + setReSync(true); }, }; }