react-misc-toolbox
Version:
- [ ] diagramexample | optimize creating from blank slate
142 lines (111 loc) • 4.8 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _formik = require('formik');
var _recompose = require('recompose');
var _Form = require('./Form');
var _Form2 = _interopRequireDefault(_Form);
var _yup = require('yup');
var Yup = _interopRequireWildcard(_yup);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var CreateUserWithEmailAndPasswordForm = function CreateUserWithEmailAndPasswordForm(props) {
var labels = props.labels;
return _react2.default.createElement(
_Form2.default,
props,
function (_ref) {
var renderTextInputSocket = _ref.renderTextInputSocket,
renderSubmitButton = _ref.renderSubmitButton;
return _react2.default.createElement(
_react.Fragment,
null,
renderTextInputSocket({ type: 'email', label: labels.email }),
renderTextInputSocket({ type: 'password', label: labels.password }),
renderTextInputSocket({
type: 'passwordConfirmation',
label: labels.passwordConfirmation
}),
renderSubmitButton({ label: labels.submit })
);
}
);
};
var enhance = (0, _recompose.compose)((0, _recompose.defaultProps)({
handleCreateUserWithEmailAndPassword: function handleCreateUserWithEmailAndPassword(email, password) {
return console.log('handleCreateUserWithEmailAndPassword', email, password);
},
labels: {
submit: 'submit',
email: 'email',
emailRequired: 'emailRequired',
emailInvalid: 'emailInvalid',
password: 'password',
passwordRequired: 'passwordRequired',
passwordMinLength: 'passwordMinLength',
passwordConfirmation: 'passwordConfirmation',
passwordConfirmationRequired: 'passwordConfirmationRequired',
passwordConfirmationMismatch: 'passwordConfirmationMismatch'
}
}), (0, _formik.withFormik)({
mapPropsToValues: function mapPropsToValues() {
return { email: '', password: '', passwordConfirmation: '' };
},
validationSchema: function validationSchema(_ref2) {
var labels = _ref2.labels;
return Yup.object().shape({
email: Yup.string().required(labels.emailRequired).email(labels.emailInvalid),
password: Yup.string().required(labels.passwordRequired).min(8, labels.passwordMinLength),
passwordConfirmation: Yup.string().required(labels.passwordConfirmationRequired).oneOf([Yup.ref('password'), null], labels.passwordConfirmationMismatch)
});
},
handleSubmit: function () {
var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(values, _ref3) {
var handleCreateUserWithEmailAndPassword = _ref3.props.handleCreateUserWithEmailAndPassword,
setSubmitting = _ref3.setSubmitting,
setFieldError = _ref3.setFieldError;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
console.log('Submit', (0, _stringify2.default)(values, null, 2));
_context.next = 4;
return handleCreateUserWithEmailAndPassword(values);
case 4:
_context.next = 11;
break;
case 6:
_context.prev = 6;
_context.t0 = _context['catch'](0);
console.error(_context.t0);
_context.next = 11;
return setFieldError('firebase', _context.t0.message);
case 11:
_context.next = 13;
return setSubmitting(false);
case 13:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[0, 6]]);
}));
function handleSubmit(_x, _x2) {
return _ref4.apply(this, arguments);
}
return handleSubmit;
}(),
displayName: 'CreateUserWithEmailAndPasswordForm'
}));
CreateUserWithEmailAndPasswordForm.propTypes = {};
exports.default = enhance(CreateUserWithEmailAndPasswordForm);
;