From 4392cea75a89239b1b56b9f094aa2fb405a5e0b3 Mon Sep 17 00:00:00 2001
From: Russ <8377044+rdubrock@users.noreply.github.com>
Date: Mon, 28 Jul 2025 14:23:41 -0800
Subject: [PATCH] chore: add an option to hide the metrics browser in a
PromQueryField (#108718)
---
.../src/components/PromQueryField.test.tsx | 13 ++++++++
.../src/components/PromQueryField.tsx | 32 +++++++++++--------
2 files changed, 31 insertions(+), 14 deletions(-)
diff --git a/packages/grafana-prometheus/src/components/PromQueryField.test.tsx b/packages/grafana-prometheus/src/components/PromQueryField.test.tsx
index d3fc7b80360..62fbdde8232 100644
--- a/packages/grafana-prometheus/src/components/PromQueryField.test.tsx
+++ b/packages/grafana-prometheus/src/components/PromQueryField.test.tsx
@@ -80,6 +80,19 @@ describe('PromQueryField', () => {
expect(bcButton).toBeDisabled();
});
+ it('renders no metrics chooser if hidden by props', async () => {
+ const props = {
+ ...defaultProps,
+ hideMetricsBrowser: true,
+ };
+ const queryField = render();
+
+ // wait for component to render
+ await screen.findByTestId('dummy-code-input');
+
+ expect(queryField.queryByRole('button')).not.toBeInTheDocument();
+ });
+
it('renders an initial hint if no data and initial hint provided', async () => {
const props = defaultProps;
props.datasource.lookupsDisabled = true;
diff --git a/packages/grafana-prometheus/src/components/PromQueryField.tsx b/packages/grafana-prometheus/src/components/PromQueryField.tsx
index 289b206b7d2..1a6f95bba50 100644
--- a/packages/grafana-prometheus/src/components/PromQueryField.tsx
+++ b/packages/grafana-prometheus/src/components/PromQueryField.tsx
@@ -25,6 +25,7 @@ import { MonacoQueryFieldWrapper } from './monaco-query-field/MonacoQueryFieldWr
interface PromQueryFieldProps extends QueryEditorProps {
ExtraFieldElement?: ReactNode;
+ hideMetricsBrowser?: boolean;
'data-testid'?: string;
}
@@ -40,6 +41,7 @@ export const PromQueryField = (props: PromQueryFieldProps) => {
range,
onChange,
onRunQuery,
+ hideMetricsBrowser = false,
} = props;
const theme = useTheme2();
@@ -111,20 +113,22 @@ export const PromQueryField = (props: PromQueryFieldProps) => {
className="gf-form-inline gf-form-inline--xs-view-flex-column flex-grow-1"
data-testid={props['data-testid']}
>
-
+ {!hideMetricsBrowser && (
+
+ )}