import React, { useState } from 'react'; import { MemberName, ProfileIcon, MemberManagerWrapper, MemberManagerSearchWrapper, MemberManagerSearch, BoardMembersLabel, BoardMembersList, BoardMembersListItem, BoardMemberListItemContent, ActiveIconWrapper, } from './Styles'; import { Checkmark } from 'shared/icons'; type MemberManagerProps = { availableMembers: Array; activeMembers: Array; onMemberChange: (member: TaskUser, isActive: boolean) => void; }; const MemberManager: React.FC = ({ availableMembers, activeMembers: initialActiveMembers, onMemberChange, }) => { const [activeMembers, setActiveMembers] = useState(initialActiveMembers); const [currentSearch, setCurrentSearch] = useState(''); return ( ) => { setCurrentSearch(e.currentTarget.value); }} /> Board Members {availableMembers .filter( member => currentSearch === '' || member.fullName.toLowerCase().startsWith(currentSearch.toLowerCase()), ) .map(member => { return ( { const isActive = activeMembers.findIndex(m => m.id === member.id) !== -1; if (isActive) { setActiveMembers(activeMembers.filter(m => m.id !== member.id)); } else { setActiveMembers([...activeMembers, member]); } onMemberChange(member, !isActive); }} > JK {member.fullName} {activeMembers.findIndex(m => m.id === member.id) !== -1 && ( )} ); })} ); }; export default MemberManager;