import React, { useState } from 'react'; import { Users, MailPlus } from 'lucide-react'; import { Badge } from './ui/badge'; import { Button } from './ui/button'; import { Input } from './ui/input'; import { toast } from 'sonner'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from './ui/dialog'; import clareAvatar from '../assets/dfe44dab3ad8cd93953eac4a3e68bd1a5f999653.png'; import type { GroupMember } from '../App'; interface GroupMembersProps { members: GroupMember[]; } export function GroupMembers({ members }: GroupMembersProps) { const [inviteOpen, setInviteOpen] = useState(false); const [inviteEmail, setInviteEmail] = useState(''); const handleSendInvite = () => { if (!inviteEmail.trim()) { toast.error('Please enter an email to invite'); return; } toast.success(`Invitation sent to ${inviteEmail}`); setInviteEmail(''); setInviteOpen(false); }; return (

Group Members ({members.length})

{members.map((member) => { const isAI = !!member.isAI; return (
{/* Avatar */}
{isAI ? ( Clare ) : ( {member.name.split(' ').map(n => n[0]).join('').toUpperCase()} )}
{/* Member Info */}

{member.name}

{isAI && ( AI )}

{member.email}

{/* Online Status */}
)})}
Invite member Send a quick email invite with the team details.
setInviteEmail(e.target.value)} />

An invitation email with a join link will be sent to this address.

); }