grafana/public/app/plugins/datasource/cloudwatch/components/VariableQueryEditor/VariableQueryField.tsx
Ashley Harrison 06d3c27bc1
Select: Portal menu by default (#48176)
* Remove menuShouldPortal from all <Select /> components

* fix unit tests

* leave menuShouldPortal as an escape hatch

* Fix import order
2022-05-04 15:12:59 +01:00

44 lines
1018 B
TypeScript

import React from 'react';
import { SelectableValue } from '@grafana/data';
import { InlineField, Select } from '@grafana/ui';
import { VariableQueryType } from '../../types';
const LABEL_WIDTH = 20;
interface VariableQueryFieldProps<T> {
onChange: (value: T) => void;
options: SelectableValue[];
value: T | null;
label: string;
inputId?: string;
allowCustomValue?: boolean;
isLoading?: boolean;
}
export const VariableQueryField = <T extends string | VariableQueryType>({
label,
onChange,
value,
options,
allowCustomValue = false,
isLoading = false,
inputId = label,
}: VariableQueryFieldProps<T>) => {
return (
<InlineField label={label} labelWidth={LABEL_WIDTH} htmlFor={inputId}>
<Select
aria-label={label}
width={25}
allowCustomValue={allowCustomValue}
value={value}
onChange={({ value }) => onChange(value!)}
options={options}
isLoading={isLoading}
inputId={inputId}
/>
</InlineField>
);
};