'use client'; import { useState, useEffect } from 'react'; import { AVAILABLE_MODELS as FALLBACK_MODELS, type ModelOption } from '@/lib/models'; import { API_BASE } from '@/lib/config'; interface ModelSelectorProps { value: string; onChange: (id: string) => void; className?: string; } export function ModelSelector({ value, onChange, className = '' }: ModelSelectorProps) { const [open, setOpen] = useState(false); const [models, setModels] = useState(FALLBACK_MODELS); useEffect(() => { fetch(`${API_BASE}/public/models`) .then(r => r.json()) .then(data => { if (data.items?.length) { setModels(data.items.map((m: any) => ({ id: m.id, label: m.name, provider: m.provider, desc: m.description || '', }))); } }) .catch(() => {}); }, []); const selected = models.find(m => m.id === value) || models[0]; return (
{open && ( <>
setOpen(false)} />
{models.map(m => ( ))}
)}
); }