UNPKG

react-misc-toolbox

Version:

- [ ] diagramexample | optimize creating from blank slate

142 lines (111 loc) 4.8 kB
'use strict'; 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);