import React, { useMemo } from 'react'; import type { ModelSelectorProps } from '~/common'; import { ModelSelectorProvider, useModelSelectorContext } from './ModelSelectorContext'; import { ModelSelectorChatProvider } from './ModelSelectorChatContext'; import { renderModelSpecs, renderEndpoints, renderSearchResults, renderCustomGroups, } from './components'; import { getSelectedIcon, getDisplayValue } from './utils'; import { CustomMenu as Menu } from './CustomMenu'; import DialogManager from './DialogManager'; import { useLocalize } from '~/hooks'; function ModelSelectorContent() { const localize = useLocalize(); const { // LibreChat agentsMap, modelSpecs, mappedEndpoints, endpointsConfig, // State searchValue, searchResults, selectedValues, // Functions setSearchValue, setSelectedValues, // Dialog keyDialogOpen, onOpenChange, keyDialogEndpoint, } = useModelSelectorContext(); const selectedIcon = useMemo( () => getSelectedIcon({ mappedEndpoints: mappedEndpoints ?? [], selectedValues, modelSpecs, endpointsConfig, }), [mappedEndpoints, selectedValues, modelSpecs, endpointsConfig], ); const selectedDisplayValue = useMemo( () => getDisplayValue({ localize, agentsMap, modelSpecs, selectedValues, mappedEndpoints, }), [localize, agentsMap, modelSpecs, selectedValues, mappedEndpoints], ); const trigger = ( ); return (