import { useEffect, useMemo, useState } from 'react' import { Check } from 'lucide-react' import Modal from './Modal' import Button from './Button' export default function ModelDialog({ open, onOpenChange, registry, currentProvider, currentModel, onSelect, }) { const providerIds = useMemo(() => Object.keys(registry || {}), [registry]) const [activeProvider, setActiveProvider] = useState(currentProvider || providerIds[0] || 'groq') const provider = registry?.[activeProvider] const models = provider?.models || [] const providerEnabled = provider?.enabled !== false useEffect(() => { if (!open || !providerIds.length) return setActiveProvider(currentProvider || providerIds[0]) }, [open, currentProvider, providerIds]) return (
{providerIds.map((providerId) => ( ))}
{providerEnabled ? null : (
{provider?.reason || 'This provider is not configured for the current deployment.'}
)} {models.map((model) => { const active = currentProvider === activeProvider && currentModel === model.id return ( ) })} {!models.length ? (
No models available for this provider.
) : null}
) }