Skip to content

Commit 542cd44

Browse files
committed
feat(tracemetrics): Disable Save As for equations
Adds a tooltip and disables the button for the equation. Also filters it out from "All Metrics"
1 parent 39b25a5 commit 542cd44

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {useMemo} from 'react';
2+
import {useTheme} from '@emotion/react';
23
import * as Sentry from '@sentry/react';
34

45
import {
@@ -32,6 +33,7 @@ interface UseSaveAsMetricItemsOptions {
3233
}
3334

3435
export function useSaveAsMetricItems(_options: UseSaveAsMetricItemsOptions) {
36+
const theme = useTheme();
3537
const location = useLocation();
3638
const organization = useOrganization();
3739
const {saveQuery, updateQuery} = useSaveMetricsMultiQuery();
@@ -111,30 +113,46 @@ export function useSaveAsMetricItems(_options: UseSaveAsMetricItemsOptions) {
111113
label: t('All Metrics'),
112114
textValue: t('All Metrics'),
113115
onAction: () => {
114-
addToDashboard(metricQueries);
116+
addToDashboard(
117+
metricQueries.filter(
118+
metricQuery =>
119+
!isVisualizeEquation(metricQuery.queryParams.visualizes[0]!)
120+
)
121+
);
115122
},
116123
},
117124
]
118125
: []),
119126
...metricQueries.map((metricQuery, index) => {
127+
const visualize = metricQuery.queryParams.visualizes[0]!;
120128
return {
121129
key: `add-to-dashboard-${index}`,
122-
label: `${metricQuery.label ?? getVisualizeLabel(index, isVisualizeEquation(metricQuery.queryParams.visualizes[0]!))}: ${
130+
label: `${metricQuery.label ?? getVisualizeLabel(index, isVisualizeEquation(visualize))}: ${
123131
formatTraceMetricsFunction(
124132
metricQuery.queryParams.aggregateFields
125133
.filter(isVisualize)
126134
.map(v => v.yAxis)
127135
) as string
128136
}`,
129137
onAction: () => {
138+
if (isVisualizeEquation(visualize)) {
139+
return;
140+
}
130141
addToDashboard(metricQuery);
131142
},
143+
disabled: isVisualizeEquation(visualize),
144+
tooltip: isVisualizeEquation(visualize)
145+
? t('Equations cannot currently be added to a dashboard')
146+
: undefined,
147+
style: isVisualizeEquation(visualize)
148+
? {color: theme.tokens.content.disabled}
149+
: undefined,
132150
};
133151
}),
134152
],
135153
},
136154
];
137-
}, [addToDashboard, metricQueries]);
155+
}, [addToDashboard, metricQueries, theme.tokens.content.disabled]);
138156

139157
return useMemo(() => {
140158
return [...saveAsItems, ...addToDashboardItems];

0 commit comments

Comments
 (0)