From bab761411946c267a7553156aa66a430dd2848e8 Mon Sep 17 00:00:00 2001 From: Manoj Vivek Date: Tue, 17 May 2022 09:13:31 +0200 Subject: [PATCH] Using default date range when partial query params are found in the URL --- .../components/src/ProfileExplorer/index.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ui/packages/shared/components/src/ProfileExplorer/index.tsx b/ui/packages/shared/components/src/ProfileExplorer/index.tsx index 01950100ff8..9a9d44d9452 100644 --- a/ui/packages/shared/components/src/ProfileExplorer/index.tsx +++ b/ui/packages/shared/components/src/ProfileExplorer/index.tsx @@ -6,6 +6,7 @@ import {QueryServiceClient} from '@parca/client'; import {useAppSelector, useAppDispatch, setCompare, selectCompareMode} from '@parca/store'; import {Provider} from 'react-redux'; import {store} from '@parca/store'; +import {DateTimeRange} from '../DateTimeRangePicker'; export type NavigateFunction = (path: string, queryParams: any) => void; @@ -20,6 +21,15 @@ const getExpressionAsAString = (expression: string | []) => { return x; }; +const sanitizeDateRange = (time_selection_a: any, from_a: any, to_a: any) => { + const range = DateTimeRange.fromRangeKey(time_selection_a); + if (from_a == null && to_a == null) { + from_a = range.getFromMs(); + to_a = range.getToMs(); + } + return {time_selection_a: range.getRangeKey(), from_a, to_a}; +}; + const ProfileExplorerApp = ({ queryClient, queryParams, @@ -28,7 +38,7 @@ const ProfileExplorerApp = ({ const dispatch = useAppDispatch(); const compareMode = useAppSelector(selectCompareMode); - const { + let { from_a, to_a, merge_a, @@ -47,6 +57,11 @@ const ProfileExplorerApp = ({ compare_b, } = queryParams; + const sanitizedRange = sanitizeDateRange(time_selection_a, from_a, to_a); + time_selection_a = sanitizedRange.time_selection_a; + from_a = sanitizedRange.from_a; + to_a = sanitizedRange.to_a; + const expression_a = getExpressionAsAString(queryParams.expression_a); const expression_b = getExpressionAsAString(queryParams.expression_b);