realtime-chat-room / src /components /UserSidebar.tsx
Trae Assistant
Initial realtime chat room app
35b5bd1
Raw
History Blame Contribute Delete
882 Bytes
import { Circle, Users } from 'lucide-react';
import type { ChatUser } from '../../shared/chat';
type UserSidebarProps = {
currentUserId: string | null;
users: ChatUser[];
};
export default function UserSidebar({ currentUserId, users }: UserSidebarProps) {
return (
<aside className="user-sidebar">
<div className="sidebar-title">
<Users size={18} />
<span>在线成员</span>
<strong>{users.length}</strong>
</div>
<div className="user-list">
{users.map((user) => (
<div
className={`user-pill ${user.id === currentUserId ? 'current' : ''}`}
key={user.id}
>
<Circle size={10} fill="currentColor" />
<span>{user.nickname}</span>
{user.id === currentUserId ? <em></em> : null}
</div>
))}
</div>
</aside>
);
}