agent-ecosystem/src/renderer/components/team/members/MemberList.tsx
iliya 4a48f312c6 feat: enhance team member task tracking and UI improvements
- Added functionality to build task counts by owner, integrating it into TeamDetailView and MemberCard components for better task management visibility.
- Updated MemberList to pass task counts to MemberCard, allowing for detailed task status display per member.
- Improved UI elements in MemberCard for better interaction and visual feedback, including task completion progress.
- Translated various UI text elements from Russian to English for consistency and accessibility.
2026-02-23 12:33:01 +02:00

49 lines
1.4 KiB
TypeScript

import { getMemberColor } from '@shared/constants/memberColors';
import { MemberCard } from './MemberCard';
import type { TaskStatusCounts } from '@renderer/utils/pathNormalize';
import type { ResolvedTeamMember } from '@shared/types';
interface MemberListProps {
members: ResolvedTeamMember[];
memberTaskCounts?: Map<string, TaskStatusCounts>;
isTeamAlive?: boolean;
onMemberClick?: (member: ResolvedTeamMember) => void;
onSendMessage?: (member: ResolvedTeamMember) => void;
onAssignTask?: (member: ResolvedTeamMember) => void;
}
export const MemberList = ({
members,
memberTaskCounts,
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, index) => (
<MemberCard
key={member.name}
member={member}
memberColor={member.color ?? getMemberColor(index)}
taskCounts={memberTaskCounts?.get(member.name.toLowerCase())}
isTeamAlive={isTeamAlive}
onClick={() => onMemberClick?.(member)}
onSendMessage={() => onSendMessage?.(member)}
onAssignTask={() => onAssignTask?.(member)}
/>
))}
</div>
);
};