export function RoleMembers()

in frontend/src/routes/admin/people/role/member/member.tsx [34:84]


export function RoleMembers() {
    const { t } = useTranslation();
    const match = useMatch('admin/people/role/:roleId');
    const roleId = match?.params.roleId as string;
    const { users } = useSpaceUsers();
    const { members, getRoleMembers, loading } = useRoleMember(roleId);
    const [visible, setVisible] = useState(false);
    const [confirmLoading, setConfirmLoading] = useState(false);
    const userInfo = useContext(UserInfoContext);
    const [form] = useForm();
    const isAllUser = members?.name.includes('All Users');
    const { confirm } = Modal;

    const filteredUsers = users?.filter(user => {
        const data = members.members.map(item => item.email);
        if (data.includes(user.email)) {
            return false;
        }
        return true;
    });

    const columns: ColumnsType<any> = [
        {
            title: t`members`,
            key: 'name',
            dataIndex: 'name',
        },
        {
            title: t`Mail`,
            dataIndex: 'email',
            key: 'email',
        },
    ];

    if (!isAllUser) {
        columns.push({
            title: t`operation`,
            key: 'actions',
            render: (record: any) => {
                const forbiddenEditRole =
                    members.name === 'All Users_1' ||
                    (members.name === 'Administrators_1' && members?.members.length <= 1) ||
                    userInfo?.name === record.name;
                return (
                    <FlatBtn disabled={forbiddenEditRole} onClick={() => handleDelete(record)}>
                        {t`remove`}
                    </FlatBtn>
                );
            },
        });
    }