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);