diff --git a/frontend/src/hooks/useSafeNavigate.ts b/frontend/src/hooks/useSafeNavigate.ts index 516782ad0e..5de8483b84 100644 --- a/frontend/src/hooks/useSafeNavigate.ts +++ b/frontend/src/hooks/useSafeNavigate.ts @@ -12,6 +12,10 @@ interface SafeNavigateParams { search?: string; } +interface UseSafeNavigateProps { + enableSameURLCheck?: boolean; +} + const areUrlsEffectivelySame = (url1: URL, url2: URL): boolean => { if (url1.pathname !== url2.pathname) return false; @@ -78,7 +82,9 @@ const isDefaultNavigation = (currentUrl: URL, targetUrl: URL): boolean => { return newKeys.length > 0; }; -export const useSafeNavigate = (): { +export const useSafeNavigate = ( + { enableSameURLCheck }: UseSafeNavigateProps = { enableSameURLCheck: true }, +): { safeNavigate: ( to: string | SafeNavigateParams, options?: NavigateOptions, @@ -108,7 +114,7 @@ export const useSafeNavigate = (): { const urlsAreSame = areUrlsEffectivelySame(currentUrl, targetUrl); const isDefaultParamsNavigation = isDefaultNavigation(currentUrl, targetUrl); - if (urlsAreSame) { + if (enableSameURLCheck && urlsAreSame) { return; } @@ -129,7 +135,7 @@ export const useSafeNavigate = (): { ); } }, - [navigate, location.pathname, location.search], + [navigate, location.pathname, location.search, enableSameURLCheck], ); return { safeNavigate }; diff --git a/frontend/src/providers/QueryBuilder.tsx b/frontend/src/providers/QueryBuilder.tsx index 6233bf569c..0cf5db736a 100644 --- a/frontend/src/providers/QueryBuilder.tsx +++ b/frontend/src/providers/QueryBuilder.tsx @@ -763,7 +763,9 @@ export function QueryBuilderProvider({ [panelType, stagedQuery], ); - const { safeNavigate } = useSafeNavigate(); + const { safeNavigate } = useSafeNavigate({ + enableSameURLCheck: !(initialDataSource === DataSource.LOGS), + }); const redirectWithQueryBuilderData = useCallback( (