mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import React, { SFC } from 'react';
|
|
import Select from 'react-select';
|
|
import DescriptionOption from './DescriptionOption';
|
|
import IndicatorsContainer from './IndicatorsContainer';
|
|
import ResetStyles from './ResetStyles';
|
|
|
|
interface Props {
|
|
className?: string;
|
|
defaultValue?: any;
|
|
getOptionLabel: (item: any) => string;
|
|
getOptionValue: (item: any) => string;
|
|
onSelected: (item: any) => {} | void;
|
|
options: any[];
|
|
placeholder?: string;
|
|
width?: number;
|
|
value: any;
|
|
}
|
|
|
|
const SimplePicker: SFC<Props> = ({
|
|
className,
|
|
defaultValue,
|
|
getOptionLabel,
|
|
getOptionValue,
|
|
onSelected,
|
|
options,
|
|
placeholder,
|
|
width,
|
|
value,
|
|
}) => {
|
|
return (
|
|
<Select
|
|
classNamePrefix="gf-form-select-box"
|
|
className={`${width ? 'width-' + width : ''} gf-form-input gf-form-input--form-dropdown ${className || ''}`}
|
|
components={{
|
|
Option: DescriptionOption,
|
|
IndicatorsContainer,
|
|
}}
|
|
defaultValue={defaultValue}
|
|
value={value}
|
|
getOptionLabel={getOptionLabel}
|
|
getOptionValue={getOptionValue}
|
|
menuShouldScrollIntoView={false}
|
|
isSearchable={false}
|
|
onChange={onSelected}
|
|
options={options}
|
|
placeholder={placeholder || 'Choose'}
|
|
styles={ResetStyles}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default SimplePicker;
|