github.com/grafana/pyroscope@v1.18.0/public/app/ui/Select.tsx (about) 1 import React, { ReactNode } from 'react'; 2 import styles from './Select.module.scss'; 3 4 interface SelectProps { 5 ariaLabel: string; 6 className?: string; 7 value: string; 8 onChange: (e: React.ChangeEvent<HTMLSelectElement>) => void; 9 name?: string; 10 children: Array< 11 React.DetailedHTMLProps< 12 React.OptionHTMLAttributes<HTMLOptionElement>, 13 HTMLOptionElement 14 > 15 >; 16 id?: string; 17 disabled?: boolean; 18 } 19 20 export default function Select({ 21 ariaLabel, 22 className, 23 value, 24 onChange, 25 children, 26 name, 27 id, 28 disabled, 29 }: SelectProps) { 30 return ( 31 <select 32 id={id} 33 disabled={disabled || false} 34 name={name} 35 aria-label={ariaLabel} 36 className={`${styles.select} ${className || ''}`} 37 value={value} 38 onChange={onChange} 39 > 40 {children as ReactNode} 41 </select> 42 ); 43 }