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 && ( + + )}