import { flatten } from 'lodash'; import React, { useMemo, useCallback } from 'react'; import { SelectableValue } from '@grafana/data'; import { LegacyForms } from '@grafana/ui'; import { Variable } from 'app/types/templates'; const { Select } = LegacyForms; export interface Props { onChange: (value: string | undefined) => void; options: Array>; isSearchable: boolean; value: string; placeholder?: string; className?: string; variables?: Variable[]; } export const MetricSelect = (props: Props) => { const { value, placeholder, className, isSearchable, onChange } = props; const options = useSelectOptions(props); const selected = useSelectedOption(options, value); const onChangeValue = useCallback((selectable: SelectableValue) => onChange(selectable.value), [onChange]); return (