mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-06 02:28:51 +01:00
🔧 refactor: Enhance Model & Endpoint Configurations with Global Indicators 🌍 (#6578)
* 🔧 fix: Simplify event handling in Badge component by always preventing default behavior and stopping propagation on toggle
* feat: show Global agents icon in ModelSelector
* feat: show Global agents icon in ModelSelector's search results
* refactor(Header): remove unused import
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* refactor(EndpointModelItem): remove unused import of useGetStartupConfig
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
parent
b9ebdd4aa5
commit
e630c0a00d
13 changed files with 76 additions and 127 deletions
|
|
@ -1,73 +0,0 @@
|
|||
import { isAgentsEndpoint, isAssistantsEndpoint } from 'librechat-data-provider';
|
||||
import { ExtendedEndpoint } from '~/common';
|
||||
|
||||
export const filterMenuItems = (
|
||||
searchTerm: string,
|
||||
mappedEndpoints: ExtendedEndpoint[],
|
||||
agents: any[],
|
||||
assistants: any[],
|
||||
modelsData: any,
|
||||
): ExtendedEndpoint[] => {
|
||||
if (!searchTerm.trim()) {
|
||||
return mappedEndpoints;
|
||||
}
|
||||
|
||||
const lowercaseSearchTerm = searchTerm.toLowerCase();
|
||||
|
||||
return mappedEndpoints
|
||||
.map((ep) => {
|
||||
if (ep.hasModels) {
|
||||
if (isAgentsEndpoint(ep.value)) {
|
||||
const filteredAgents = agents.filter((agent) =>
|
||||
agent.name?.toLowerCase().includes(lowercaseSearchTerm),
|
||||
);
|
||||
if (ep.label.toLowerCase().includes(lowercaseSearchTerm) || filteredAgents.length > 0) {
|
||||
return {
|
||||
...ep,
|
||||
models: filteredAgents.map((agent) => agent.id),
|
||||
agentNames: filteredAgents.reduce((acc: Record<string, string>, agent) => {
|
||||
acc[agent.id] = agent.name || '';
|
||||
return acc;
|
||||
}, {}),
|
||||
};
|
||||
}
|
||||
return null;
|
||||
} else if (isAssistantsEndpoint(ep.value)) {
|
||||
const filteredAssistants = assistants.filter((assistant) =>
|
||||
assistant.name?.toLowerCase().includes(lowercaseSearchTerm),
|
||||
);
|
||||
if (
|
||||
ep.label.toLowerCase().includes(lowercaseSearchTerm) ||
|
||||
filteredAssistants.length > 0
|
||||
) {
|
||||
return {
|
||||
...ep,
|
||||
models: filteredAssistants.map((assistant) => assistant.id),
|
||||
assistantNames: filteredAssistants.reduce(
|
||||
(acc: Record<string, string>, assistant) => {
|
||||
acc[assistant.id] = assistant.name || '';
|
||||
return acc;
|
||||
},
|
||||
{},
|
||||
),
|
||||
};
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
const allModels = modelsData?.[ep.value] ?? [];
|
||||
const filteredModels = allModels.filter((model: string) =>
|
||||
model.toLowerCase().includes(lowercaseSearchTerm),
|
||||
);
|
||||
if (ep.label.toLowerCase().includes(lowercaseSearchTerm) || filteredModels.length > 0) {
|
||||
return { ...ep, models: filteredModels };
|
||||
}
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return ep.label.toLowerCase().includes(lowercaseSearchTerm) ? { ...ep, models: [] } : null;
|
||||
}
|
||||
})
|
||||
.filter(Boolean) as ExtendedEndpoint[];
|
||||
};
|
||||
|
||||
export default filterMenuItems;
|
||||
|
|
@ -20,7 +20,6 @@ export { default as logger } from './logger';
|
|||
export { default as buildTree } from './buildTree';
|
||||
export { default as getLoginError } from './getLoginError';
|
||||
export { default as cleanupPreset } from './cleanupPreset';
|
||||
export { default as filterMenuItems } from './endpointFilter';
|
||||
export { default as buildDefaultConvo } from './buildDefaultConvo';
|
||||
export { default as getDefaultEndpoint } from './getDefaultEndpoint';
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue