import { useMemo } from 'react'; import type { TMessage, TPreset, Assistant, Agent } from 'librechat-data-provider'; import type { TMessageProps } from '~/common'; import MessageEndpointIcon from '../Endpoints/MessageEndpointIcon'; import ConvoIconURL from '~/components/Endpoints/ConvoIconURL'; import { getIconEndpoint } from '~/utils'; import { UserIcon } from '../svg'; export default function MessageIcon( props: Pick & { assistant?: false | Assistant; agent?: false | Agent; }, ) { const { message, conversation, assistant, agent } = props; const assistantName = assistant ? (assistant.name as string | undefined) : ''; const assistantAvatar = assistant ? (assistant.metadata?.avatar as string | undefined) : ''; const agentName = agent ? (agent.name as string | undefined) : ''; const agentAvatar = agent ? (agent.metadata?.avatar as string | undefined) : ''; const messageSettings = useMemo( () => ({ ...(conversation ?? {}), ...({ ...message, iconURL: message?.iconURL ?? '', } as TMessage), }), [conversation, message], ); const iconURL = messageSettings?.iconURL; let endpoint = messageSettings?.endpoint; endpoint = getIconEndpoint({ endpointsConfig: undefined, iconURL, endpoint }); if (!message?.isCreatedByUser && iconURL && iconURL.includes('http')) { return ( ); } if (message?.isCreatedByUser) { return (
); } return ( ); }