UNPKG

@appbuckets/react-ui-forms

Version:

An utilities package to manage and create Form using AppBuckets ReactUI

104 lines (97 loc) 2.84 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var React = require('react'); var Button = require('@appbuckets/react-ui/Button'); var HookedForm_context = require('../context/HookedForm.context.js'); function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty( n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; }, } ); } }); } n['default'] = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/ _interopNamespace(React); var Button__default = /*#__PURE__*/ _interopDefaultLegacy(Button); /* -------- * Component Definition * -------- */ var HookedFormActions = function () { /** Get the Wrapper Component */ var _a = HookedForm_context.useHookedFormContext(), Wrapper = _a.actionsWrapper, cancelButton = _a.cancelButton, formState = _a.formState, handleCancel = _a.handleCancel, submitButton = _a.submitButton; /** No Wrapper, no Party */ if (!Wrapper) { return null; } /** Omit props on React.Fragment, they are not allowed */ var wrapperProps = Wrapper === React__namespace.Fragment ? undefined : { className: 'form-actions' }; /** Build elements using Shorthand */ var cancelButtonElement = Button__default['default'].create(cancelButton, { autoGenerateKey: false, defaultProps: { className: 'cancel', }, overrideProps: function (originalProps) { return { disabled: formState.isSubmitting, onClick: function (event, buttonProps) { /** Use user defined onClick handler if exists */ if (typeof originalProps.onClick === 'function') { originalProps.onClick(event, buttonProps); } /** Call internal Handler */ handleCancel(); }, }; }, }); var submitButtonElement = Button__default['default'].create(submitButton, { autoGenerateKey: false, defaultProps: { className: 'submit', primary: true, loading: formState.isSubmitting, }, overrideProps: { disabled: formState.isSubmitting, type: 'submit', }, }); /** Return the Component */ return React__namespace.createElement( Wrapper, _tslib.__assign({}, wrapperProps), cancelButtonElement, submitButtonElement ); }; HookedFormActions.displayName = 'HookedFormActions'; module.exports = HookedFormActions;