import { useState } from 'react';
import { Cloud, ChevronDown, ChevronRight, User } from 'lucide-react';
export default function ComparisonSelector({ providers, selected, onSelectionChange, loading }) {
const [expandedProviders, setExpandedProviders] = useState({});
const toggleExpand = (providerId) => {
setExpandedProviders(prev => ({ ...prev, [providerId]: !prev[providerId] }));
};
const toggleModel = (modelId) => {
if (selected.includes(modelId)) {
onSelectionChange(selected.filter(id => id !== modelId));
} else {
onSelectionChange([...selected, modelId]);
}
};
if (loading) {
return (
Comparison Models
Checking model availability…
);
}
if (!providers.length) {
return (
Comparison Models
Configure API keys in .env to enable comparison providers
);
}
return (
Comparison Models
Select models to compare against
{[...providers].sort((a, b) => a.name.localeCompare(b.name)).map(provider => {
const providerModelIds = provider.models.map(m => m.id);
const selectedCount = providerModelIds.filter(id => selected.includes(id)).length;
const isExpanded = expandedProviders[provider.id] === true;
return (
{isExpanded && (
{provider.models.map(model => {
const checked = selected.includes(model.id);
return (
);
})}
)}
);
})}
);
}