fix: minor bug and pr comments regarding better resync

This commit is contained in:
sawhil 2025-06-04 00:37:18 +05:30
parent f60492fe62
commit 816fd1c6fb
4 changed files with 27 additions and 7 deletions

View File

@ -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,

View File

@ -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 };
}

View File

@ -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({

View File

@ -46,7 +46,7 @@ export function usePreferenceUpdater({
}: {
dataSource: DataSource;
mode: string;
setReSync: Dispatch<SetStateAction<number>>;
setReSync: Dispatch<SetStateAction<boolean>>;
setSavedViewPreferences: Dispatch<SetStateAction<Preferences | null>>;
}): {
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);
},
};
}