import { Color } from '@signozhq/design-tokens'; import { Button, Input, Select, Typography } from 'antd'; import { ArrowLeft, ArrowRight, CheckCircle, Plus, TriangleAlert, } from 'lucide-react'; import { useState } from 'react'; interface InviteTeamMembersProps { teamMembers: string[]; setTeamMembers: (teamMembers: string[]) => void; onNext: () => void; onBack: () => void; } const userRolesOptions = ( Viewer Editor Admin ); function InviteTeamMembers({ teamMembers, setTeamMembers, onNext, onBack, }: InviteTeamMembersProps): JSX.Element { const [teamMembersToInvite, setTeamMembersToInvite] = useState( teamMembers || [''], ); const handleAddTeamMember = (): void => { setTeamMembersToInvite([...teamMembersToInvite, '']); }; const handleNext = (): void => { console.log(teamMembersToInvite); setTeamMembers(teamMembersToInvite); onNext(); }; const handleOnChange = ( e: React.ChangeEvent, index: number, ): void => { const newTeamMembers = [...teamMembersToInvite]; newTeamMembers[index] = e.target.value; setTeamMembersToInvite(newTeamMembers); }; const isValidEmail = (email: string): boolean => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }; return ( Observability made collaborative The more your team uses SigNoz, the stronger your observability. Share dashboards, collaborate on alerts, and troubleshoot faster together. Collaborate with your team Invite your team to the SigNoz workspace {teamMembersToInvite.map((member, index) => ( // eslint-disable-next-line react/no-array-index-key 0 ? ( isValidEmail(member) ? ( ) : ( ) ) : null } placeholder="your-teammate@org.com" value={member} type="email" required autoFocus autoComplete="off" onChange={(e: React.ChangeEvent): void => handleOnChange(e, index) } /> ))} } onClick={handleAddTeamMember} > Member Back Send Invites I'll do this later ); } export default InviteTeamMembers;