/** * @file components/members/MemberList.tsx * @description Renders categorized lists of online and offline members using the UserContext. */ import { useMemo } from "react"; import { MemberItem } from "@/components/members/MemberItem"; import { ServerMemberWithUser } from "@/lib/context/ServerContext"; /** Renders online and offline community members in distinct sections. */ export function MemberList({ members }: { members: ServerMemberWithUser[] }) { const { onlineMembers, offlineMembers } = useMemo(() => { return { onlineMembers: members.filter((m) => m.status !== "OFFLINE"), offlineMembers: members.filter((m) => m.status === "OFFLINE"), }; }, [members]); return (
{/* Online Section */}

Online — {onlineMembers.length}

{onlineMembers.map((member) => ( ))} {onlineMembers.length === 0 && (

No members online

)}
{/* Offline Section */}

Offline — {offlineMembers.length}

{offlineMembers.map((member) => ( ))}
); }