diff --git a/public/app/features/dashboard/components/ShareModal/utils.ts b/public/app/features/dashboard/components/ShareModal/utils.ts index 9c651470840..16fd652cb37 100644 --- a/public/app/features/dashboard/components/ShareModal/utils.ts +++ b/public/app/features/dashboard/components/ShareModal/utils.ts @@ -1,8 +1,10 @@ -import { dateTime, locationUtil, PanelModel, TimeRange, urlUtil } from '@grafana/data'; +import { dateTime, locationUtil, TimeRange, urlUtil, rangeUtil } from '@grafana/data'; import { config } from '@grafana/runtime'; import { createShortLink } from 'app/core/utils/shortLinks'; import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv'; +import { PanelModel } from '../../state'; + export interface BuildParamsArgs { useCurrentTimeRange: boolean; selectedTheme?: string; @@ -21,9 +23,17 @@ export function buildParams({ orgId = config.bootData.user.orgId, }: BuildParamsArgs): URLSearchParams { const searchParams = new URLSearchParams(search); + const relative = panel?.timeFrom; - searchParams.set('from', String(range.from.valueOf())); - searchParams.set('to', String(range.to.valueOf())); + // Use panel's relative time if it's set + if (relative) { + const { from, to } = rangeUtil.describeTextRange(relative); + searchParams.set('from', from); + searchParams.set('to', to); + } else { + searchParams.set('from', String(range.from.valueOf())); + searchParams.set('to', String(range.to.valueOf())); + } searchParams.set('orgId', String(orgId)); if (!useCurrentTimeRange) {