/** * @file app/(app)/member/[id]/MemberProfileCard.tsx * @description Client component rendering detailed profile information and activity metrics for a specific team member. */ "use client"; import { getFullName, getInitials, formatTimeAgo, capitalize, } from "@/lib/utils/user"; import { Mail, Clock, ShieldCheck } from "lucide-react"; import { UserListItem } from "@/lib/types/user"; /** * Properties for the MemberProfileCard component. * * @interface MemberProfileCardProps * @property {UserListItem} member - The user item containing detailed profile data, activity status, and credentials. */ interface MemberProfileCardProps { member: UserListItem; } /** * Renders a detailed profile card for a team member, including user avatar initials, online status indicators, * contact information, and activity metrics. * * @param {MemberProfileCardProps} props - The component props. * @returns {JSX.Element} The rendered member profile card component. */ export default function MemberProfileCard({ member }: MemberProfileCardProps) { const stats = [ { label: "Last Activity", value: formatTimeAgo(member.lastLogin), icon: Clock, color: "text-blue-400 bg-blue-500/10 border-blue-500/20", }, { label: "Account Status", value: `Active - ${capitalize(member.role)}`, icon: ShieldCheck, color: "text-emerald-400 bg-emerald-500/10 border-emerald-500/20", }, ]; return (
{stat.label}
{stat.value}