@nomios/web-uikit
Version:
Nomios' living web UIKit
63 lines (61 loc) • 1.87 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import StandardModal from '../standard-modal';
import Button from '../../button';
import styles from './ConfirmModal.css';
const ConfirmModal = ({
title,
description,
confirmText,
confirmVariant,
cancelText,
cancelVariant,
onConfirm,
onCancel,
className,
contentClassName,
titleClassName,
descriptionClassName,
buttonsClassName,
...rest
}) => React.createElement(StandardModal, Object.assign({
className: classNames(styles.modal, className),
contentClassName: classNames(styles.content, contentClassName)
}, rest), React.createElement("h2", {
className: classNames(styles.title, titleClassName)
}, title), React.createElement("p", {
className: classNames(styles.description, descriptionClassName)
}, description), React.createElement("div", {
className: classNames(styles.buttonsContainer, buttonsClassName)
}, React.createElement(Button, {
className: styles.button,
variant: cancelVariant,
onClick: onCancel
}, cancelText), React.createElement(Button, {
className: styles.button,
variant: confirmVariant,
onClick: onConfirm
}, confirmText)));
ConfirmModal.propTypes = {
title: PropTypes.string.isRequired,
description: PropTypes.string.isRequired,
onConfirm: PropTypes.func.isRequired,
onCancel: PropTypes.func.isRequired,
confirmText: PropTypes.string,
confirmVariant: PropTypes.string,
cancelText: PropTypes.string,
cancelVariant: PropTypes.string,
className: PropTypes.string,
contentClassName: PropTypes.string,
titleClassName: PropTypes.string,
descriptionClassName: PropTypes.string,
buttonsClassName: PropTypes.string
};
ConfirmModal.defaultProps = {
confirmText: 'Yes',
confirmVariant: 'secondary',
cancelText: 'No',
cancelVariant: 'primary'
};
export default ConfirmModal;