diff --git a/web-admin/src/features/bookmarks/utils.ts b/web-admin/src/features/bookmarks/utils.ts index a89bb3200fd1..91e5446ffa06 100644 --- a/web-admin/src/features/bookmarks/utils.ts +++ b/web-admin/src/features/bookmarks/utils.ts @@ -1,7 +1,7 @@ import type { V1Bookmark } from "@rilldata/web-admin/client"; import { isHomeBookmark } from "@rilldata/web-admin/features/bookmarks/selectors.ts"; import { cleanUrlParams } from "@rilldata/web-common/features/dashboards/url-state/clean-url-params.ts"; -import { parseRillTime } from "@rilldata/web-common/features/dashboards/url-state/time-ranges/parser.ts"; +import { isAbsoluteTimeRange } from "@rilldata/web-common/features/dashboards/url-state/time-ranges/parser.ts"; import { ExploreStateURLParams } from "@rilldata/web-common/features/dashboards/url-state/url-params"; import { prettyFormatTimeRange } from "@rilldata/web-common/lib/time/ranges/formatter.ts"; import { type DashboardTimeControls } from "@rilldata/web-common/lib/time/types.ts"; @@ -223,12 +223,7 @@ function isAbsoluteTimeRangeBookmark(bookmarkUrlParams: URLSearchParams) { const timeRange = bookmarkUrlParams.get(ExploreStateURLParams.TimeRange); if (!timeRange) return false; - try { - const rt = parseRillTime(timeRange); - return rt.isAbsoluteTime(); - } catch { - return false; - } + return isAbsoluteTimeRange(timeRange); } export function isFilterOnlyBookmark( diff --git a/web-common/src/features/canvas/filters/CanvasComparisonPill.svelte b/web-common/src/features/canvas/filters/CanvasComparisonPill.svelte index d53a823a0eaf..91dcd6e1a4a8 100644 --- a/web-common/src/features/canvas/filters/CanvasComparisonPill.svelte +++ b/web-common/src/features/canvas/filters/CanvasComparisonPill.svelte @@ -101,8 +101,8 @@ {#if activeTimeGrain && interval} | undefined { - if (!interval || !comparisonRange || isNewRillTimeFormat(comparisonRange)) + // New format ranges are resolved by the backend, so there is nothing to compute here. + // Absolute ranges are the exception: they carry their own start and end, so they are parsed below. + if ( + !interval || + !comparisonRange || + (isNewRillTimeFormat(comparisonRange) && + !isAbsoluteTimeRange(comparisonRange)) + ) return undefined; let comparisonInterval: Interval | undefined = undefined;