38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
|
|
import api from 'shared/utils/api';
|
|
import toast from 'shared/utils/toast';
|
|
import { Button, ConfirmModal } from 'shared/components';
|
|
|
|
const propTypes = {
|
|
issue: PropTypes.object.isRequired,
|
|
fetchProject: PropTypes.func.isRequired,
|
|
modalClose: PropTypes.func.isRequired,
|
|
};
|
|
|
|
const ProjectBoardIssueDetailsDelete = ({ issue, fetchProject, modalClose }) => {
|
|
const handleIssueDelete = async () => {
|
|
try {
|
|
await api.delete(`/issues/${issue.id}`);
|
|
await fetchProject();
|
|
modalClose();
|
|
} catch (error) {
|
|
toast.error(error);
|
|
}
|
|
};
|
|
return (
|
|
<ConfirmModal
|
|
title="Are you sure you want to delete this issue?"
|
|
message="Once you delete, it's gone for good."
|
|
confirmText="Delete issue"
|
|
onConfirm={handleIssueDelete}
|
|
renderLink={modal => <Button icon="trash" iconSize={19} color="empty" onClick={modal.open} />}
|
|
/>
|
|
);
|
|
};
|
|
|
|
ProjectBoardIssueDetailsDelete.propTypes = propTypes;
|
|
|
|
export default ProjectBoardIssueDetailsDelete;
|