From cb69cd91a0d34a2c50ebde4b9b1bc5a8bd5a2cf6 Mon Sep 17 00:00:00 2001 From: Sahil Date: Wed, 26 Feb 2025 09:06:14 +0530 Subject: [PATCH] fix: disabled same url check for redirect in logs explorer --- frontend/src/hooks/useSafeNavigate.ts | 12 +++++++++--- frontend/src/providers/QueryBuilder.tsx | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) 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( (