From f4fbe62169e549b503100c5251580a32e3a9af3e Mon Sep 17 00:00:00 2001 From: rahulkeswani101 Date: Thu, 26 Sep 2024 17:26:14 +0530 Subject: [PATCH] feat: added new function to decide new path based on button clicked --- .../MetricsApplication/Tabs/Overview.tsx | 17 ++++++---- .../container/MetricsApplication/Tabs/util.ts | 34 +++++++++++++++---- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/frontend/src/container/MetricsApplication/Tabs/Overview.tsx b/frontend/src/container/MetricsApplication/Tabs/Overview.tsx index 5fb101deac..a8d40f3dd9 100644 --- a/frontend/src/container/MetricsApplication/Tabs/Overview.tsx +++ b/frontend/src/container/MetricsApplication/Tabs/Overview.tsx @@ -46,6 +46,7 @@ import TopOperationMetrics from './Overview/TopOperationMetrics'; import { Button, Card } from './styles'; import { IServiceName } from './types'; import { + generateExplorerPath, handleNonInQueryRange, onGraphClickHandler, onViewTracePopupClick, @@ -208,7 +209,7 @@ function Application(): JSX.Element { const urlParams = new URLSearchParams(search); urlParams.set(QueryParams.startTime, currentTime.toString()); urlParams.set(QueryParams.endTime, tPlusOne.toString()); - urlParams.delete('relativeTime'); + urlParams.delete(QueryParams.relativeTime); const avialableParams = routeConfig[ROUTES.TRACE]; const queryString = getQueryString(avialableParams, urlParams); @@ -216,12 +217,14 @@ function Application(): JSX.Element { JSON.stringify(apmToTraceQuery), ); - const basePath = isViewLogsClicked - ? ROUTES.LOGS_EXPLORER - : ROUTES.TRACES_EXPLORER; - const newPath = `${basePath}?${urlParams.toString()}&selected={"serviceName":["${servicename}"]}&filterToFetchData=["duration","status","serviceName"]&spanAggregateCurrentPage=1&selectedTags=${selectedTraceTags}&${ - QueryParams.compositeQuery - }=${JSONCompositeQuery}&${queryString.join('&')}`; + const newPath = generateExplorerPath( + isViewLogsClicked, + urlParams, + servicename, + selectedTraceTags, + JSONCompositeQuery, + queryString, + ); history.push(newPath); }, diff --git a/frontend/src/container/MetricsApplication/Tabs/util.ts b/frontend/src/container/MetricsApplication/Tabs/util.ts index d58554e2d7..c13c0857e5 100644 --- a/frontend/src/container/MetricsApplication/Tabs/util.ts +++ b/frontend/src/container/MetricsApplication/Tabs/util.ts @@ -36,6 +36,24 @@ interface OnViewTracePopupClickProps { apmToTraceQuery: Query; isViewLogsClicked?: boolean; } + +export function generateExplorerPath( + isViewLogsClicked: boolean | undefined, + urlParams: URLSearchParams, + servicename: string | undefined, + selectedTraceTags: string, + JSONCompositeQuery: string, + queryString: string[], +): string { + const basePath = isViewLogsClicked + ? ROUTES.LOGS_EXPLORER + : ROUTES.TRACES_EXPLORER; + + return `${basePath}?${urlParams.toString()}&selected={"serviceName":["${servicename}"]}&filterToFetchData=["duration","status","serviceName"]&spanAggregateCurrentPage=1&selectedTags=${selectedTraceTags}&${ + QueryParams.compositeQuery + }=${JSONCompositeQuery}&${queryString.join('&')}`; +} + export function onViewTracePopupClick({ selectedTraceTags, servicename, @@ -51,7 +69,7 @@ export function onViewTracePopupClick({ const urlParams = new URLSearchParams(window.location.search); urlParams.set(QueryParams.startTime, currentTime.toString()); urlParams.set(QueryParams.endTime, tPlusOne.toString()); - urlParams.delete('relativeTime'); + urlParams.delete(QueryParams.relativeTime); const avialableParams = routeConfig[ROUTES.TRACE]; const queryString = getQueryString(avialableParams, urlParams); @@ -59,12 +77,14 @@ export function onViewTracePopupClick({ JSON.stringify(apmToTraceQuery), ); - const basePath = isViewLogsClicked - ? ROUTES.LOGS_EXPLORER - : ROUTES.TRACES_EXPLORER; - const newPath = `${basePath}?${urlParams.toString()}&selected={"serviceName":["${servicename}"]}&filterToFetchData=["duration","status","serviceName"]&spanAggregateCurrentPage=1&selectedTags=${selectedTraceTags}&${ - QueryParams.compositeQuery - }=${JSONCompositeQuery}&${queryString.join('&')}`; + const newPath = generateExplorerPath( + isViewLogsClicked, + urlParams, + servicename, + selectedTraceTags, + JSONCompositeQuery, + queryString, + ); history.push(newPath); };