UNPKG

@talend/react-forms

Version:

React forms library based on json schema form.

92 lines (91 loc) 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = require("react"); var _classnames = _interopRequireDefault(require("classnames")); var _reactComponents = require("@talend/react-components"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class SingleButton extends _react.Component { constructor(props) { super(props); this.state = {}; this.onClick = this.onClick.bind(this); } onClick(event) { const schema = this.props.schema; const type = schema.type || 'button'; if (type === 'button' && schema.triggers) { this.setState({ inProgress: true }); this.props.onTrigger(event, { trigger: schema.triggers[0], schema }).finally(() => this.setState({ inProgress: false })); } else if (this.props.onClick) { this.props.onClick(event, schema); } } render() { var _props$bsStyle; const { className, id, schema, getComponent } = this.props; const { type = 'button', title, label, inProgress, ...props } = schema; const Renderer = _reactComponents.Inject.getAll(getComponent, { Action: _reactComponents.Action }); return /*#__PURE__*/(0, _jsxRuntime.jsx)(Renderer.Action, { ...props, id: id, className: (0, _classnames.default)( // FIXME update forms to use .btn--secondary instead { 'btn--secondary': !props.bsStyle || ((_props$bsStyle = props.bsStyle) === null || _props$bsStyle === void 0 ? void 0 : _props$bsStyle.includes('default')) }, 'btn', className), label: label || title, onClick: this.onClick, type: type, inProgress: this.state.inProgress || inProgress }); } } exports.default = SingleButton; if (process.env.NODE_ENV !== 'production') { SingleButton.propTypes = { className: _propTypes.default.string, id: _propTypes.default.string, onTrigger: _propTypes.default.func, onClick: _propTypes.default.func, getComponent: _propTypes.default.func, schema: _propTypes.default.shape({ bsStyle: _propTypes.default.string, disabled: _propTypes.default.bool, inProgress: _propTypes.default.bool, label: _propTypes.default.string, name: _propTypes.default.string, title: _propTypes.default.string, triggers: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string])), type: _propTypes.default.oneOf(['button', 'submit', 'reset']) }) }; } SingleButton.defaultProps = { schema: {} }; //# sourceMappingURL=SingleButton.component.js.map