UNPKG

@pantheon-systems/design-toolkit-react

Version:
75 lines (72 loc) 2.91 kB
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