File size: 1,134 Bytes
f0743f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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}
/>
);
}
|