@pantheon-systems/design-toolkit-react
Version:
Pantheon's React Design Toolkit
75 lines (72 loc) • 2.91 kB
JavaScript
import hashSum from 'hash-sum';
import { Form } from 'informed';
import PropTypes from 'prop-types';
import { useContext, Fragment } from 'react';
import { ButtonSecondary } from '../Buttons/index.js';
import CustomCheckbox from '../Forms/CustomCheckbox.js';
import ModalContent from './ModalContent.js';
import ModalContext from './ModalContext.js';
import { jsx, jsxs } from 'react/jsx-runtime';
import ButtonGroup from '../Buttons/ButtonGroup.js';
import SubmitButton from '../Buttons/SubmitButton.js';
var ModalConfirmationForm = function ModalConfirmationForm(_ref) {
var cancelButtonLabel = _ref.cancelButtonLabel,
confirmationText = _ref.confirmationText,
onSubmit = _ref.onSubmit,
onDismiss = _ref.onDismiss,
isWorking = _ref.isWorking,
submitButtonLabel = _ref.submitButtonLabel,
submitButtonType = _ref.submitButtonType;
var _useContext = useContext(ModalContext),
isScrollableHeight = _useContext.isScrollableHeight;
var checkboxField = hashSum("modal-confirmation-".concat(submitButtonLabel));
return /*#__PURE__*/jsx(ModalContent, {
className: "overflow-visible ".concat(isScrollableHeight ? 'border-t border-solid border-gray-2' : ''),
children: /*#__PURE__*/jsx(Form, {
onSubmit: onSubmit,
children: function children(_ref2) {
var formState = _ref2.formState;
return /*#__PURE__*/jsxs(Fragment, {
children: [/*#__PURE__*/jsxs("fieldset", {
children: [/*#__PURE__*/jsxs("legend", {
className: "sr-only",
children: ["Confirmation Checkbox to Enable Action: ", submitButtonLabel]
}), /*#__PURE__*/jsx(CustomCheckbox, {
field: checkboxField,
children: confirmationText
})]
}), /*#__PURE__*/jsxs(ButtonGroup, {
className: "mt-2",
children: [/*#__PURE__*/jsx(SubmitButton, {
disabled: !formState.values[checkboxField],
isLoading: isWorking,
type: submitButtonType,
children: submitButtonLabel
}), cancelButtonLabel && /*#__PURE__*/jsx(ButtonSecondary, {
onClick: onDismiss,
children: cancelButtonLabel
})]
})]
});
}
})
});
};
ModalConfirmationForm.defaultProps = {
cancelButtonLabel: '',
isWorking: false,
onDismiss: function onDismiss() {},
submitButtonType: 'danger'
};
ModalConfirmationForm.propTypes = {
cancelButtonLabel: PropTypes.string,
confirmationText: PropTypes.string.isRequired,
isWorking: PropTypes.bool,
onDismiss: PropTypes.func,
onSubmit: PropTypes.func.isRequired,
submitButtonLabel: PropTypes.string.isRequired,
submitButtonType: PropTypes.string
};
var ModalConfirmationForm$1 = ModalConfirmationForm;
export { ModalConfirmationForm$1 as default };
//# sourceMappingURL=ModalConfirmationForm_DEPRECATED.js.map