"use client" import { useState } from "react" import { cn } from "@lib/utils" import { Button } from "@ui/components/button" import { dmSansClassName } from "@/lib/fonts" import { ChevronDownIcon } from "lucide-react" import { models, type ModelId, modelNames } from "@/lib/models" import { analytics } from "@/lib/analytics" interface ChatModelSelectorProps { selectedModel?: ModelId onModelChange?: (model: ModelId) => void } export default function ChatModelSelector({ selectedModel: selectedModelProp, onModelChange, }: ChatModelSelectorProps = {}) { const [internalModel, setInternalModel] = useState("gemini-2.5-pro") const [isOpen, setIsOpen] = useState(false) const selectedModel = selectedModelProp ?? internalModel const currentModelData = modelNames[selectedModel] const handleModelSelect = (modelId: ModelId) => { if (onModelChange) { onModelChange(modelId) } else { setInternalModel(modelId) } analytics.modelChanged({ model: modelId }) setIsOpen(false) } return (
{isOpen && ( <> ) })}
)} ) }