"use client"; import { getModels, getDefaultModel, ModelID } from "@/lib/models"; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "./ui/select"; import { cn } from "@/lib/utils"; import { Bot } from "lucide-react"; import { useEffect, useState } from "react"; interface ModelPickerProps { selectedModel: ModelID; setSelectedModel: (model: ModelID) => void; } export const ModelPicker = ({ selectedModel, setSelectedModel }: ModelPickerProps) => { const [models, setModels] = useState([]); const [validModelId, setValidModelId] = useState(""); useEffect(() => { const fetchModels = async () => { const availableModels = await getModels(); setModels(availableModels); const defaultModel = await getDefaultModel(); const currentModel = selectedModel || defaultModel; const isValid = availableModels.includes(currentModel); const newValidModelId = isValid ? currentModel : defaultModel; setValidModelId(newValidModelId); if (selectedModel !== newValidModelId) { setSelectedModel(newValidModelId); } }; fetchModels(); }, [selectedModel, setSelectedModel]); // Handle model change const handleModelChange = (modelId: string) => { if (models.includes(modelId as ModelID)) { setSelectedModel(modelId as ModelID); } }; return (
); };