import { ChangeEventHandler, useCallback } from 'react' type PossibleValue = string | boolean export type Option = { value: T label: string ariaHidden?: 'true' | 'false' disabled?: boolean } export type Optgroup = { label: string options: Array> } type SettingsMenuSelectProps = { label: string name: string options: Array> optgroup?: Optgroup loading?: boolean onChange: (val: T) => void value?: T } export default function SettingsMenuSelect({ label, name, options, optgroup, loading, onChange, value, }: SettingsMenuSelectProps) { const handleChange: ChangeEventHandler = useCallback( event => { let value: PossibleValue = event.target.value if (value === 'true' || value === 'false') { value = value === 'true' } onChange(value as T) }, [onChange] ) return (
{loading ? (

) : ( )}
) }