// Copyright (C) 2021-2022 Intel Corporation // // SPDX-License-Identifier: MIT import React from 'react'; import Select from 'antd/lib/select'; import Text from 'antd/lib/typography/Text'; import { Row, Col } from 'antd/lib/grid'; import moment from 'moment'; import { CloseOutlined } from '@ant-design/icons'; import Modal from 'antd/lib/modal'; export interface Props { membershipInstance: any; onRemoveMembership(): void; onUpdateMembershipRole(role: string): void; } function MemberItem(props: Props): JSX.Element { const { membershipInstance, onRemoveMembership, onUpdateMembershipRole, } = props; const { user, joined_date: joinedDate, role, invitation, } = membershipInstance; const { username, firstName, lastName } = user; return ( {username} {`${firstName || ''} ${lastName || ''}`} {invitation ? ( {`Invited ${moment(invitation.created_date).fromNow()} ${invitation.owner ? `by ${invitation.owner.username}` : ''}`} ) : null} {joinedDate ? {`Joined ${moment(joinedDate).fromNow()}`} : null} {role !== 'owner' ? ( { Modal.confirm({ className: 'cvat-modal-organization-member-remove', title: `You are removing "${username}" from this organization`, content: 'The person will not have access to the organization data anymore. Continue?', okText: 'Yes, remove', okButtonProps: { danger: true, }, onOk: () => { onRemoveMembership(); }, }); }} /> ) : null} ); } export default React.memo(MemberItem);