in frontend/src/routes/admin/people/user/user.tsx [37:114]
export function User() {
const {t} = useTranslation()
const userInfo = useContext(UserInfoContext)!;
const { users = [], spaceMembers = [], getSpaceMembers, loading } = useSpaceMembers(userInfo);
const [modalVisible, setModalVisible] = useState(false);
const filteredUsers = users.filter(user => !spaceMembers.find(member => member.id === user.id));
const columns = [
{
title: t`username`,
key: 'name',
dataIndex: 'name',
},
{
title: t`Mail`,
dataIndex: 'email',
key: 'email',
},
{
title: t`status`,
dataIndex: 'is_active',
filters: [
{ text: t`activated`, value: true },
{ text: t`deactivated`, value: false },
],
render: (is_active: boolean) => (
<StatusMark status={is_active ? 'success' : 'deactivated'}>{is_active ? t`activated` : t`deactivated`}</StatusMark>
),
onFilter: (value: any, record: any) => record.is_active === value,
},
{
title: t`lastLogin`,
dataIndex: 'last_login',
key: 'last_login',
render: (last_login: string) => {
return (
<span>{last_login == null ? t`neverLoggedIn` : moment(last_login).format('YYYY-MM-DD HH:mm:ss')}</span>
);
},
},
{
title: t`operation`,
key: 'actions',
render: (record: IUser) => {
const disabled = userInfo.id === record.id;
return (
<FlatBtn disabled={disabled} onClick={handleRemove(record.id)}>
{t`removeMember`}
</FlatBtn>
);
},
},
];
const handleRemove = (userId: number) => () => {
Modal.confirm({
title: t`removeMemberModalTitle`,
onOk: () => {
return removeMemberFromSpaceAPI(userId)
.then(() => {
message.success(t`removeSuccess`);
getSpaceMembers();
})
.catch(() => {
message.error('removeFailed');
});
},
});
};
return (
<>
{/* <Row justify="end" style={{ marginBottom: 20 }}>
<Button type="primary" onClick={() => setModalVisible(true)}>
{t`addMembers`}
</Button>
</Row> */}