import React, { memo } from 'react'; import type { TUser } from 'librechat-data-provider'; import type { IconProps } from '~/common'; import MessageEndpointIcon from './MessageEndpointIcon'; import { useAuthContext } from '~/hooks/AuthContext'; import useAvatar from '~/hooks/Messages/useAvatar'; import useLocalize from '~/hooks/useLocalize'; import { UserIcon } from '~/components/svg'; import { cn } from '~/utils'; type UserAvatarProps = { size: number; user?: TUser; avatarSrc: string; username: string; className?: string; }; const UserAvatar = memo(({ size, user, avatarSrc, username, className }: UserAvatarProps) => (
{!(user?.avatar ?? '') && (!(user?.username ?? '') || user?.username.trim() === '') ? (
) : ( avatar )}
)); UserAvatar.displayName = 'UserAvatar'; const Icon: React.FC = memo((props) => { const { user } = useAuthContext(); const { size = 30, isCreatedByUser } = props; const avatarSrc = useAvatar(user); const localize = useLocalize(); if (isCreatedByUser) { const username = user?.name ?? user?.username ?? localize('com_nav_user'); return ( ); } return ; }); Icon.displayName = 'Icon'; export default Icon;