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  }