import { Avatar, Button, CircularProgress, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Typography, } from "@mui/material"; import type { TeamMemberListItem } from "@/domain/team-members/types/team-member"; const HEADINGS = ["Team Member", "Role", "Service Area", "Phone", "Email", "Color", "Status"]; function memberStatusLabel(member: TeamMemberListItem) { return member.pendingRegistration ? "Pending registration" : member.status; } export function TeamMembersTable({ rows, isLoading, hasError, tab, onOpen, }: { rows: TeamMemberListItem[]; isLoading: boolean; hasError: boolean; tab: "active" | "inactive"; onOpen: (member: TeamMemberListItem) => void; }) { return ( {HEADINGS.map((heading) => ( {heading} ))} Actions {isLoading ? ( ) : hasError ? ( Unable to load team members Check your connection and try again. ) : rows.length === 0 ? ( No {tab} team members found Try a different search, or add a new team member. ) : ( rows.map((member) => ( onOpen(member)} sx={{ cursor: "pointer" }} > {member.name || "—"} {member.role || "—"} {member.serviceArea || "—"} {member.phone || "—"} {member.email || "—"} {memberStatusLabel(member)} )) )}
); }