department-of-veterans-affairs/vets-website

View on GitHub
src/applications/financial-status-report/components/shared/DeleteConfirmationModal.jsx

Summary

Maintainability
A
1 hr
Test Coverage
import React from 'react';
import PropTypes from 'prop-types';
import { VaModal } from '@department-of-veterans-affairs/component-library/dist/react-bindings';

/**
 * A shared delete confirmation modal component.
 * @param {object} props - The props object.
 * @param {boolean} props.isOpen - Indicates whether the modal is open.
 * @param {Function} props.onClose - Callback function to close the modal.
 * @param {Function} props.onDelete - Callback function to confirm deletion.
 * @param {string} props.modalTitle - The name of the modal to be deleted.
 */
const DeleteConfirmationModal = ({ isOpen, onClose, onDelete, modalTitle }) => {
  return (
    <VaModal
      onCloseEvent={onClose}
      modalTitle={`Delete ${modalTitle}?`}
      onPrimaryButtonClick={onDelete}
      onSecondaryButtonClick={onClose}
      primaryButtonText="Yes, delete this"
      secondaryButtonText="Cancel"
      status="warning"
      visible={isOpen}
    />
  );
};

DeleteConfirmationModal.propTypes = {
  isOpen: PropTypes.bool.isRequired,
  modalTitle: PropTypes.string.isRequired,
  onClose: PropTypes.func.isRequired,
  onDelete: PropTypes.func.isRequired,
};

export default DeleteConfirmationModal;