removeMember(member)}
member={member}
user={user}
/>
);
};
const TeamRoleSelect = (props: {
hasWriteAccess: boolean;
member: TeamMember;
organization: Organization;
team: Team;
updateMemberRole: (member: TeamMember, newRole: string) => void;
}) => {
const {hasWriteAccess, organization, team, member, updateMemberRole} = props;
const {orgRoleList, teamRoleList, features} = organization;
if (!features.includes('team-roles')) {
return null;
}
// Determine the team-role, including if the current team has an org role
// and if adding the user to the current team changes their minimum team-role
const possibleOrgRoles = [member.orgRole];
if (member.orgRolesFromTeams) {
possibleOrgRoles.push(member.orgRolesFromTeams[0].role.id);
}
if (team.orgRole) {
possibleOrgRoles.push(team.orgRole);
}
const effectiveOrgRole = getEffectiveOrgRole(possibleOrgRoles, orgRoleList);
const teamRoleId = member.teamRole || effectiveOrgRole?.minimumTeamRole;
const teamRole = teamRoleList.find(r => r.id === teamRoleId) || teamRoleList[0];
if (
!hasWriteAccess ||
hasOrgRoleOverwrite({orgRole: effectiveOrgRole?.id, orgRoleList, teamRoleList})
) {
return (