mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-28 05:06:13 +01:00
feat: Integrate agentsMap into EndpointIcon for agent avatar rendering
This commit is contained in:
parent
959e301f99
commit
087ffa972e
2 changed files with 12 additions and 2 deletions
|
|
@ -7,6 +7,7 @@ import type { TConversation } from 'librechat-data-provider';
|
||||||
import { useUpdateConversationMutation } from '~/data-provider';
|
import { useUpdateConversationMutation } from '~/data-provider';
|
||||||
import EndpointIcon from '~/components/Endpoints/EndpointIcon';
|
import EndpointIcon from '~/components/Endpoints/EndpointIcon';
|
||||||
import { useNavigateToConvo, useLocalize, useShiftKey } from '~/hooks';
|
import { useNavigateToConvo, useLocalize, useShiftKey } from '~/hooks';
|
||||||
|
import { useAgentsMapContext } from '~/Providers/AgentsMapContext';
|
||||||
import { useGetEndpointsQuery } from '~/data-provider';
|
import { useGetEndpointsQuery } from '~/data-provider';
|
||||||
import { NotificationSeverity } from '~/common';
|
import { NotificationSeverity } from '~/common';
|
||||||
import { ConvoOptions } from './ConvoOptions';
|
import { ConvoOptions } from './ConvoOptions';
|
||||||
|
|
@ -25,6 +26,7 @@ export default function Conversation({ conversation, retainView, toggleNav }: Co
|
||||||
const params = useParams();
|
const params = useParams();
|
||||||
const localize = useLocalize();
|
const localize = useLocalize();
|
||||||
const { showToast } = useToastContext();
|
const { showToast } = useToastContext();
|
||||||
|
const agentsMap = useAgentsMapContext();
|
||||||
const { navigateToConvo } = useNavigateToConvo();
|
const { navigateToConvo } = useNavigateToConvo();
|
||||||
const { data: endpointsConfig } = useGetEndpointsQuery();
|
const { data: endpointsConfig } = useGetEndpointsQuery();
|
||||||
const currentConvoId = useMemo(() => params.conversationId, [params.conversationId]);
|
const currentConvoId = useMemo(() => params.conversationId, [params.conversationId]);
|
||||||
|
|
@ -183,6 +185,7 @@ export default function Conversation({ conversation, retainView, toggleNav }: Co
|
||||||
<EndpointIcon
|
<EndpointIcon
|
||||||
conversation={conversation}
|
conversation={conversation}
|
||||||
endpointsConfig={endpointsConfig}
|
endpointsConfig={endpointsConfig}
|
||||||
|
agentsMap={agentsMap}
|
||||||
size={20}
|
size={20}
|
||||||
context="menu-item"
|
context="menu-item"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { getEndpointField, isAssistantsEndpoint } from 'librechat-data-provider';
|
import { getEndpointField, isAssistantsEndpoint, EModelEndpoint } from 'librechat-data-provider';
|
||||||
import type {
|
import type {
|
||||||
TPreset,
|
TPreset,
|
||||||
|
TAgentsMap,
|
||||||
TConversation,
|
TConversation,
|
||||||
TAssistantsMap,
|
TAssistantsMap,
|
||||||
TEndpointsConfig,
|
TEndpointsConfig,
|
||||||
|
|
@ -14,6 +15,7 @@ export default function EndpointIcon({
|
||||||
endpointsConfig,
|
endpointsConfig,
|
||||||
className = 'mr-0',
|
className = 'mr-0',
|
||||||
assistantMap,
|
assistantMap,
|
||||||
|
agentsMap,
|
||||||
context,
|
context,
|
||||||
}: {
|
}: {
|
||||||
conversation: TConversation | TPreset | null;
|
conversation: TConversation | TPreset | null;
|
||||||
|
|
@ -21,6 +23,7 @@ export default function EndpointIcon({
|
||||||
containerClassName?: string;
|
containerClassName?: string;
|
||||||
context?: 'message' | 'nav' | 'landing' | 'menu-item';
|
context?: 'message' | 'nav' | 'landing' | 'menu-item';
|
||||||
assistantMap?: TAssistantsMap;
|
assistantMap?: TAssistantsMap;
|
||||||
|
agentsMap?: TAgentsMap;
|
||||||
className?: string;
|
className?: string;
|
||||||
size?: number;
|
size?: number;
|
||||||
}) {
|
}) {
|
||||||
|
|
@ -37,7 +40,11 @@ export default function EndpointIcon({
|
||||||
const assistantAvatar = (assistant && (assistant.metadata?.avatar as string)) || '';
|
const assistantAvatar = (assistant && (assistant.metadata?.avatar as string)) || '';
|
||||||
const assistantName = assistant && (assistant.name ?? '');
|
const assistantName = assistant && (assistant.name ?? '');
|
||||||
|
|
||||||
const iconURL = assistantAvatar || convoIconURL;
|
const agent =
|
||||||
|
endpoint === EModelEndpoint.agents ? agentsMap?.[conversation?.agent_id ?? ''] : null;
|
||||||
|
const agentAvatar = agent?.avatar?.filepath ?? '';
|
||||||
|
|
||||||
|
const iconURL = assistantAvatar || agentAvatar || convoIconURL;
|
||||||
|
|
||||||
if (iconURL && (iconURL.includes('http') || iconURL.startsWith('/images/'))) {
|
if (iconURL && (iconURL.includes('http') || iconURL.startsWith('/images/'))) {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue