Files
SCM-Manager/scm-ui/src/users/containers/DeleteUserButton.js

58 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-07-10 15:18:37 +02:00
// @flow
import React from "react";
2018-07-17 15:08:58 +02:00
import type { User } from "../types/User";
import type { UserEntry } from "../types/UserEntry";
import { confirmAlert } from "../../components/ConfirmAlert";
import DeleteButton from "../../components/DeleteButton";
2018-07-10 15:18:37 +02:00
type Props = {
entry: UserEntry,
2018-07-17 15:08:58 +02:00
confirmDialog?: boolean,
deleteUser: (user: User) => void
2018-07-10 15:18:37 +02:00
};
2018-07-17 15:08:58 +02:00
class DeleteUserButton extends React.Component<Props> {
static defaultProps = {
confirmDialog: true
};
2018-07-10 15:18:37 +02:00
deleteUser = () => {
this.props.deleteUser(this.props.entry.entry);
2018-07-10 15:18:37 +02:00
};
confirmDelete = () => {
confirmAlert({
title: "Delete user",
message: "Do you really want to delete the user?",
2018-07-17 15:08:58 +02:00
buttons: [
{
label: "Yes",
onClick: () => this.deleteUser()
},
{
label: "No",
onClick: () => null
}
]
2018-07-17 15:08:58 +02:00
});
};
2018-07-10 16:37:27 +02:00
isDeletable = () => {
return this.props.entry.entry._links.delete;
2018-07-10 15:18:37 +02:00
};
2018-07-10 16:37:27 +02:00
render() {
const { confirmDialog, entry } = this.props;
2018-07-17 15:08:58 +02:00
const action = confirmDialog ? this.confirmDelete : this.deleteUser;
if (!this.isDeletable()) {
2018-07-18 09:48:59 +02:00
return null;
}
2018-07-17 15:08:58 +02:00
return (
<DeleteButton label="Delete" action={action} loading={entry.loading} />
2018-07-10 16:37:27 +02:00
);
}
}
2018-07-10 15:18:37 +02:00
export default DeleteUserButton;