/** * @file member/list/MemberItem.tsx * @description Client component rendering an individual member item card displaying avatar initials, full name, role badge, email address, online status indicator, and last active timestamp. */ "use client"; import { getFullName, getInitials, getStatusColor, formatTimeAgo, capitalize, } from "@/utils/user"; import { Mail } from "lucide-react"; import { UserListItem } from "@/types/user"; import Link from "next/link"; /** * Properties for the MemberItem component. * * @interface MemberItemProps * @property {UserListItem} member - The member user object containing profile and status information. */ interface MemberItemProps { member: UserListItem; } /** * Renders a member list item displaying user credentials, email, dynamic color accent stripe based on online state, and activity status. * * @param {MemberItemProps} props - The component props. * @returns {JSX.Element} The rendered member item component. */ export default function MemberItem({ member }: MemberItemProps) { return ( {/* Dynamic colored accent stripe */}
{/* --- Left Side --- */}