diff --git a/src/renderer/components/team/MemberBadge.tsx b/src/renderer/components/team/MemberBadge.tsx index 5422b95c..453a4d43 100644 --- a/src/renderer/components/team/MemberBadge.tsx +++ b/src/renderer/components/team/MemberBadge.tsx @@ -61,28 +61,23 @@ type MemberBadgeContentProps = Omit & { isLight: boolean; }; -const MemberBadgeContent = memo( +type MemberBadgeResolvedContentProps = MemberBadgeContentProps & { + resolvedAvatarUrl?: string; +}; + +const MemberBadgeResolvedContent = memo( ({ name, color, teamName, isLight, size = 'sm', - avatarUrl, + resolvedAvatarUrl, hideAvatar, onClick, disableHoverCard, - }: MemberBadgeContentProps): React.JSX.Element => { + }: MemberBadgeResolvedContentProps): React.JSX.Element => { const colors = getTeamColorSet(color ?? ''); - const effectiveAvatarTeamName = useStore((s) => - hideAvatar || avatarUrl != null ? null : (teamName ?? s.selectedTeamName) - ); - const teamMembers = useStore((s) => - effectiveAvatarTeamName - ? selectResolvedMembersForTeamName(s, effectiveAvatarTeamName) - : EMPTY_TEAM_MEMBERS - ); - const avatarMap = useMemo(() => getCachedMemberAvatarMap(teamMembers), [teamMembers]); const avatarSize = size === 'md' ? 32 : size === 'sm' ? 24 : 18; const avatarClass = size === 'md' ? 'size-6' : size === 'sm' ? 'size-5' : 'size-4'; const textClass = size === 'md' ? 'text-xs' : size === 'sm' ? 'text-[10px]' : 'text-[9px]'; @@ -96,7 +91,7 @@ const MemberBadgeContent = memo( const avatar = ( { + const effectiveAvatarTeamName = useStore((s) => props.teamName ?? s.selectedTeamName); + const teamMembers = useStore((s) => + effectiveAvatarTeamName + ? selectResolvedMembersForTeamName(s, effectiveAvatarTeamName) + : EMPTY_TEAM_MEMBERS + ); + const avatarMap = useMemo(() => getCachedMemberAvatarMap(teamMembers), [teamMembers]); + return ; +}); + +MemberBadgeWithResolvedAvatar.displayName = 'MemberBadgeWithResolvedAvatar'; + +const MemberBadgeContent = memo((props: MemberBadgeContentProps): React.JSX.Element => { + if (props.hideAvatar || props.avatarUrl != null) { + return ; + } + return ; +}); + MemberBadgeContent.displayName = 'MemberBadgeContent'; const ThemedMemberBadge = memo(function ThemedMemberBadge({