UNPKG

3.66 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
10
11var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12
13var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
14
15var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16
17var _inherits2 = require('babel-runtime/helpers/inherits');
18
19var _inherits3 = _interopRequireDefault(_inherits2);
20
21var _class, _temp2;
22
23var _react = require('react');
24
25var _react2 = _interopRequireDefault(_react);
26
27var _propTypes = require('prop-types');
28
29var _propTypes2 = _interopRequireDefault(_propTypes);
30
31var _button = require('../button');
32
33var _button2 = _interopRequireDefault(_button);
34
35var _util = require('../util');
36
37function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
39/**
40 * Form.Submit
41 * @description 继承 Button API
42 * @order 2
43 */
44var Submit = (_temp2 = _class = function (_React$Component) {
45 (0, _inherits3.default)(Submit, _React$Component);
46
47 function Submit() {
48 var _temp, _this, _ret;
49
50 (0, _classCallCheck3.default)(this, Submit);
51
52 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53 args[_key] = arguments[_key];
54 }
55
56 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
57 var _this$props = _this.props,
58 onClick = _this$props.onClick,
59 validate = _this$props.validate;
60
61 var field = _this.context._formField || _this.props.field;
62
63 if (!field) {
64 onClick();
65 return;
66 }
67
68 if (validate === true) {
69 field.validate(function (errors) {
70 onClick(field.getValues(), errors, field);
71 });
72 } else if (Array.isArray(validate)) {
73 field.validate(validate, function (errors) {
74 onClick(field.getValues(), errors, field);
75 });
76 } else {
77 onClick(field.getValues(), null, field);
78 }
79 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
80 }
81
82 Submit.prototype.render = function render() {
83 var children = this.props.children;
84
85
86 return _react2.default.createElement(
87 _button2.default,
88 (0, _extends3.default)({}, _util.obj.pickOthers(Submit.propTypes, this.props), {
89 onClick: this.handleClick
90 }),
91 children
92 );
93 };
94
95 return Submit;
96}(_react2.default.Component), _class.propTypes = {
97 /**
98 * 点击提交后触发
99 * @param {Object} value 数据
100 * @param {Object} errors 错误数据
101 * @param {class} field 实例
102 */
103 onClick: _propTypes2.default.func,
104 /**
105 * 是否校验/需要校验的 name 数组
106 */
107 validate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),
108 /**
109 * 自定义 field (在 Form 内不需要设置)
110 */
111 field: _propTypes2.default.object,
112 children: _propTypes2.default.node
113}, _class.defaultProps = {
114 onClick: _util.func.noop
115}, _class.contextTypes = {
116 _formField: _propTypes2.default.object
117}, _temp2);
118Submit.displayName = 'Submit';
119exports.default = Submit;
120module.exports = exports['default'];
\No newline at end of file