import React from 'react'; import './style.scss'; export interface ModelOption { value: string; label: string; provider?: string; disabled?: boolean; } export interface ModelGroup { label: string; options: ModelOption[]; } interface ModelSelectorProps { value?: string; selectedValue?: string; onChange: (value: string) => void; models?: ModelOption[] | ModelGroup[]; groups?: ModelOption[] | ModelGroup[]; disabled?: boolean; placeholder?: string; className?: string; } const isModelGroup = (item: ModelOption | ModelGroup): item is ModelGroup => { return 'options' in item; }; export const ModelSelector: React.FC = ({ value, selectedValue, onChange, models, groups, disabled = false, placeholder = 'Select a model...', className = '' }) => { const actualValue = value || selectedValue || ''; const actualModels = models || groups || []; const renderOptions = () => { return actualModels.map((item, index) => { if (isModelGroup(item)) { return ( {item.options.map((option) => ( ))} ); } else { return ( ); } }); }; return ( ); };