From 1a225756133f24a6a4aeb490ee0f2c5ca944841d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Fern=C3=A1ndez?= Date: Wed, 11 Dec 2024 15:45:20 +0100 Subject: [PATCH] MetricCombobox: Fix overflowing parents (#97049) --- .../components/MetricCombobox.tsx | 65 +++++++++++++++---- .../components/PromQueryBuilder.tsx | 18 +++-- .../src/components/Forms/InlineField.tsx | 1 + .../src/components/Forms/InlineFieldRow.tsx | 1 + 4 files changed, 66 insertions(+), 19 deletions(-) diff --git a/packages/grafana-prometheus/src/querybuilder/components/MetricCombobox.tsx b/packages/grafana-prometheus/src/querybuilder/components/MetricCombobox.tsx index 3ce12337f37..80c2be2c262 100644 --- a/packages/grafana-prometheus/src/querybuilder/components/MetricCombobox.tsx +++ b/packages/grafana-prometheus/src/querybuilder/components/MetricCombobox.tsx @@ -1,10 +1,12 @@ +import { css } from '@emotion/css'; import { useCallback, useState } from 'react'; -import { SelectableValue } from '@grafana/data'; +import { GrafanaTheme2, SelectableValue } from '@grafana/data'; import { EditorField, EditorFieldGroup, InputGroup } from '@grafana/experimental'; import { config } from '@grafana/runtime'; -import { Button, InlineField, InlineFieldRow } from '@grafana/ui'; +import { Button, ComponentSize, InlineField, InlineFieldRow, useStyles2 } from '@grafana/ui'; import { Combobox, ComboboxOption } from '@grafana/ui/src/components/Combobox/Combobox'; +import { getPropertiesForButtonSize } from '@grafana/ui/src/components/Forms/commonStyles'; import { PrometheusDatasource } from '../../datasource'; import { regexifyLabelValuesQueryString } from '../parsingUtils'; @@ -25,6 +27,9 @@ export interface MetricComboboxProps { variableEditor?: boolean; } +const INLINE_FIELD_WIDTH = 20; +const BUTTON_SIZE: ComponentSize = 'md'; + export function MetricCombobox({ datasource, query, @@ -86,6 +91,8 @@ export function MetricCombobox({ const metricsExplorerEnabled = config.featureToggles.prometheusMetricEncyclopedia; + const styles = useStyles2(getMectricComboboxStyles); + const asyncSelect = () => { return ( @@ -101,6 +108,7 @@ export function MetricCombobox({ {metricsExplorerEnabled ? (