agent-ecosystem/src/renderer/components/team/members/MemberList.tsx
iliya f1df2be208 fix: address CodeRabbit review feedback
- MemberCard: add hover overlay to fix inline backgroundColor killing
  Tailwind hover effect (UX regression for role="button" element)
- MemberLogsTab: guard against missing taskId and memberName to prevent
  unnecessary IPC call with empty string
- MemberList: use hash-based getMemberColorByName() for stable fallback
  colors independent of array position
- TeamAgentToolsInstaller: remove redundant `from || undefined`
- TeamDataService test: assert createdBy: 'user' field
2026-02-23 12:04:13 +02:00

45 lines
1.2 KiB
TypeScript

import { getMemberColorByName } from '@shared/constants/memberColors';
import { MemberCard } from './MemberCard';
import type { ResolvedTeamMember } from '@shared/types';
interface MemberListProps {
members: ResolvedTeamMember[];
isTeamAlive?: boolean;
onMemberClick?: (member: ResolvedTeamMember) => void;
onSendMessage?: (member: ResolvedTeamMember) => void;
onAssignTask?: (member: ResolvedTeamMember) => void;
}
export const MemberList = ({
members,
isTeamAlive,
onMemberClick,
onSendMessage,
onAssignTask,
}: MemberListProps): React.JSX.Element => {
if (members.length === 0) {
return (
<div className="rounded-md border border-[var(--color-border)] p-4 text-sm text-[var(--color-text-muted)]">
No members found
</div>
);
}
return (
<div className="flex flex-col gap-0.5">
{members.map((member) => (
<MemberCard
key={member.name}
member={member}
memberColor={member.color ?? getMemberColorByName(member.name)}
isTeamAlive={isTeamAlive}
onClick={() => onMemberClick?.(member)}
onSendMessage={() => onSendMessage?.(member)}
onAssignTask={() => onAssignTask?.(member)}
/>
))}
</div>
);
};