import { selectInputOptionItemIncludesNeedle } from '../SelectInput.utils'; import { SelectInputItem, SelectInputProps } from '../SelectInput.types'; import { SelectInputOption } from '../Option'; import { SelectInputGroupItemView } from './GroupItemView'; export interface SelectInputItemViewProps< T = string, I extends SelectInputItem = SelectInputItem, > extends Required, 'renderValue'>> { item: I; needle: string | null | undefined; } /** * Component that renders different types of SelectInput items: * options, groups, or separators. */ export function SelectInputItemView({ item, renderValue, needle, }: SelectInputItemViewProps) { switch (item.type) { case 'option': { if ( item.value != null && (needle == null || selectInputOptionItemIncludesNeedle(item, needle)) ) { return ( {renderValue(item.value, false)} ); } break; } case 'group': { return ; } case 'separator': { if (needle == null) { return
; } break; } } return null; }