import React from 'react'; import { DropdownSelect, DropdownSelectItem } from '../../DropdownSelect'; import { ButtonSize } from '../../Button/ButtonTypes'; export interface SelectFieldOption { id: string | number; label: string; value: any; } export interface SelectFieldProps { value?: string | number | null; onChange?: (value: any) => void; label?: string; options: SelectFieldOption[]; placeholder?: string; required?: boolean; disabled?: boolean; description?: string; className?: string; size?: ButtonSize; } const SelectField: React.FC = ({ value, onChange, label, options, placeholder = 'Select an option', required = false, disabled = false, description, className = '', size = 'md' }) => { // Convert options to DropdownSelectItem format const items: DropdownSelectItem[] = options.map(opt => ({ id: opt.id, label: opt.label, value: opt.value })); // Find selected item ID from value const selectedItemId = value !== null && value !== undefined ? options.find(opt => opt.value === value || opt.id === value)?.id ?? null : null; const handleSelect = (item: DropdownSelectItem | null) => { if (onChange) { onChange(item ? item.value : null); } }; return (
{label && (
{description && (
{description}
)}
)}
); }; export default SelectField;