Skip to content

Commit e3ba38b

Browse files
authored
feat(tracemetrics): Sync chart cursors (#101958)
Synchronizes the chart cursors on hover
1 parent 74b0492 commit e3ba38b

File tree

2 files changed

+31
-15
lines changed

2 files changed

+31
-15
lines changed

static/app/views/explore/metrics/metricGraph/index.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import {
1919
useMetricVisualize,
2020
useSetMetricVisualize,
2121
} from 'sentry/views/explore/metrics/metricsQueryParams';
22+
import {METRICS_CHART_GROUP} from 'sentry/views/explore/metrics/metricsTab';
23+
import {useMultiMetricsQueryParams} from 'sentry/views/explore/metrics/multiMetricsQueryParams';
2224
import {
2325
useQueryParamsQuery,
2426
useQueryParamsTopEventsLimit,
@@ -29,7 +31,10 @@ import {
2931
combineConfidenceForSeries,
3032
prettifyAggregation,
3133
} from 'sentry/views/explore/utils';
32-
import {ChartType} from 'sentry/views/insights/common/components/chart';
34+
import {
35+
ChartType,
36+
useSynchronizeCharts,
37+
} from 'sentry/views/insights/common/components/chart';
3338
import type {useSortedTimeSeries} from 'sentry/views/insights/common/queries/useSortedTimeSeries';
3439
import {GenericWidgetEmptyStateWarning} from 'sentry/views/performance/landing/widgets/components/selectableList';
3540

@@ -55,9 +60,16 @@ export function MetricsGraph({
5560
infoContentHidden,
5661
isMetricOptionsEmpty,
5762
}: MetricsGraphProps) {
63+
const metricQueries = useMultiMetricsQueryParams();
5864
const visualize = useMetricVisualize();
5965
const setVisualize = useSetMetricVisualize();
6066

67+
useSynchronizeCharts(
68+
metricQueries.length,
69+
!timeseriesResult.isPending,
70+
METRICS_CHART_GROUP
71+
);
72+
6173
function handleChartTypeChange(newChartType: ChartType) {
6274
setVisualize(visualize.replace({chartType: newChartType}));
6375
}

static/app/views/explore/metrics/metricsTab.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {DatePageFilter} from 'sentry/components/organizations/datePageFilter';
66
import {EnvironmentPageFilter} from 'sentry/components/organizations/environmentPageFilter';
77
import {ProjectPageFilter} from 'sentry/components/organizations/projectPageFilter';
88
import {t} from 'sentry/locale';
9+
import {WidgetSyncContextProvider} from 'sentry/views/dashboards/contexts/widgetSyncContext';
910
import {
1011
ExploreBodyContent,
1112
ExploreBodySearch,
@@ -31,6 +32,7 @@ import {
3132
import type {PickableDays} from 'sentry/views/explore/utils';
3233

3334
const MAX_METRICS_ALLOWED = 4;
35+
export const METRICS_CHART_GROUP = 'metrics-charts-group';
3436

3537
type MetricsTabProps = PickableDays;
3638

@@ -118,20 +120,22 @@ function MetricsTabBodySection() {
118120
<ExploreControlSection expanded={false} />
119121
<ExploreContentSection expanded={false}>
120122
<Flex direction="column" gap="lg">
121-
{metricQueries.map((metricQuery, index) => {
122-
return (
123-
<MetricsQueryParamsProvider
124-
key={`queryPanel-${index}`}
125-
queryParams={metricQuery.queryParams}
126-
setQueryParams={metricQuery.setQueryParams}
127-
traceMetric={metricQuery.metric}
128-
setTraceMetric={metricQuery.setTraceMetric}
129-
removeMetric={metricQuery.removeMetric}
130-
>
131-
<MetricPanel traceMetric={metricQuery.metric} queryIndex={index} />
132-
</MetricsQueryParamsProvider>
133-
);
134-
})}
123+
<WidgetSyncContextProvider groupName={METRICS_CHART_GROUP}>
124+
{metricQueries.map((metricQuery, index) => {
125+
return (
126+
<MetricsQueryParamsProvider
127+
key={`queryPanel-${index}`}
128+
queryParams={metricQuery.queryParams}
129+
setQueryParams={metricQuery.setQueryParams}
130+
traceMetric={metricQuery.metric}
131+
setTraceMetric={metricQuery.setTraceMetric}
132+
removeMetric={metricQuery.removeMetric}
133+
>
134+
<MetricPanel traceMetric={metricQuery.metric} queryIndex={index} />
135+
</MetricsQueryParamsProvider>
136+
);
137+
})}
138+
</WidgetSyncContextProvider>
135139
</Flex>
136140
</ExploreContentSection>
137141
</ExploreBodyContent>

0 commit comments

Comments
 (0)