| import { useGetModelsQuery } from 'librechat-data-provider/react-query'; | |
| import type { TConversation } from 'librechat-data-provider'; | |
| import type { TSetOption } from '~/common'; | |
| import { multiChatOptions } from './options'; | |
| type TGoogleProps = { | |
| showExamples: boolean; | |
| isCodeChat: boolean; | |
| }; | |
| type TSelectProps = { | |
| conversation: TConversation | null; | |
| setOption: TSetOption; | |
| extraProps?: TGoogleProps; | |
| showAbove?: boolean; | |
| popover?: boolean; | |
| }; | |
| export default function ModelSelect({ | |
| conversation, | |
| setOption, | |
| popover = false, | |
| showAbove = true, | |
| }: TSelectProps) { | |
| const modelsQuery = useGetModelsQuery(); | |
| if (!conversation?.endpoint) { | |
| return null; | |
| } | |
| const { endpoint: _endpoint, endpointType } = conversation; | |
| const models = modelsQuery.data?.[_endpoint] ?? []; | |
| const endpoint = endpointType ?? _endpoint; | |
| const OptionComponent = multiChatOptions[endpoint]; | |
| if (!OptionComponent) { | |
| return null; | |
| } | |
| return ( | |
| <OptionComponent | |
| conversation={conversation} | |
| setOption={setOption} | |
| models={models} | |
| showAbove={showAbove} | |
| popover={popover} | |
| /> | |
| ); | |
| } | |