From d46402983fab435f95a1e738774979c86f0fa74e Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Mon, 14 Jul 2025 23:05:37 +0100 Subject: [PATCH] Add DeleteObjectModal component for confirming deletion of objects --- .../Dashboard/common/DeleteObjectModal.jsx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/components/Dashboard/common/DeleteObjectModal.jsx diff --git a/src/components/Dashboard/common/DeleteObjectModal.jsx b/src/components/Dashboard/common/DeleteObjectModal.jsx new file mode 100644 index 0000000..430e6c1 --- /dev/null +++ b/src/components/Dashboard/common/DeleteObjectModal.jsx @@ -0,0 +1,68 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { Modal, Button, Space, Typography } from 'antd' +import { getModelByName } from '../../../database/ObjectModels' +import BinIcon from '../../Icons/BinIcon' + +const { Text } = Typography + +const DeleteObjectModal = ({ + open, + onOk, + onCancel, + loading, + objectType, + objectName +}) => { + const model = getModelByName(objectType) + return ( + + + {`Confirm Delete ${model.label}`} + + } + onOk={onOk} + onCancel={onCancel} + okText='Delete' + cancelText='Cancel' + okType='danger' + closable={false} + centered + maskClosable={false} + footer={[ + , + + ]} + > + + Are you sure you want to delete this {model.label.toLowerCase()} + {objectName ? ` "${objectName}"` : ''}? + + + ) +} + +DeleteObjectModal.propTypes = { + open: PropTypes.bool.isRequired, + onOk: PropTypes.func.isRequired, + onCancel: PropTypes.func.isRequired, + loading: PropTypes.bool, + objectType: PropTypes.string.isRequired, + objectName: PropTypes.string +} + +export default DeleteObjectModal