From b4092ccf7105e969794eb46912715b4a3173c3bc Mon Sep 17 00:00:00 2001 From: Aditya Hegde Date: Mon, 11 Dec 2023 16:02:12 +0530 Subject: [PATCH] Adding backwards compatibility for older time comparison --- .../dashboards/proto-state/fromProto.ts | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/web-common/src/features/dashboards/proto-state/fromProto.ts b/web-common/src/features/dashboards/proto-state/fromProto.ts index 1e1b0580913..bb24fff336a 100644 --- a/web-common/src/features/dashboards/proto-state/fromProto.ts +++ b/web-common/src/features/dashboards/proto-state/fromProto.ts @@ -1,7 +1,10 @@ import type { Timestamp } from "@bufbuild/protobuf"; import { LeaderboardContextColumn } from "@rilldata/web-common/features/dashboards/leaderboard-context-column"; import type { MetricsExplorerEntity } from "@rilldata/web-common/features/dashboards/stores/metrics-explorer-entity"; -import { TimeRangePreset } from "@rilldata/web-common/lib/time/types"; +import { + TimeComparisonOption, + TimeRangePreset, +} from "@rilldata/web-common/lib/time/types"; import type { DashboardTimeControls, ScrubRange, @@ -66,6 +69,8 @@ export function getDashboardStateFromProto( entity.selectedComparisonTimeRange = fromTimeRangeProto( dashboard.compareTimeRange ); + // backwards compatibility + correctComparisonTimeRange(entity.selectedComparisonTimeRange); } entity.showTimeComparison = Boolean(dashboard.showTimeComparison); @@ -190,6 +195,28 @@ function fromTimeRangeProto(timeRange: DashboardTimeRange) { return selectedTimeRange; } +function correctComparisonTimeRange( + comparisonTimeRange: DashboardTimeControls +) { + switch (comparisonTimeRange.name as string) { + case "P1D": + comparisonTimeRange.name = TimeComparisonOption.DAY; + break; + case "P1W": + comparisonTimeRange.name = TimeComparisonOption.WEEK; + break; + case "P1M": + comparisonTimeRange.name = TimeComparisonOption.MONTH; + break; + case "P3M": + comparisonTimeRange.name = TimeComparisonOption.QUARTER; + break; + case "P1Y": + comparisonTimeRange.name = TimeComparisonOption.YEAR; + break; + } +} + function fromTimeProto(timestamp: Timestamp) { return new Date(Number(timestamp.seconds)); }