UNPKG

@r3l/app

Version:
217 lines (180 loc) 8.92 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ProfileForm; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styled = require("../../styled"); var _utils = require("../../../utils"); var _reactRedux = require("react-redux"); var _auth = require("../auth.actions"); var _reactFinalForm = require("react-final-form"); var _web = require("../../styled/web"); var _form = require("../form.fields"); var _validators = require("../../form/validators"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var Alert = _utils.alert.Alert(); ProfileForm.propTypes = { initialValues: _propTypes.default.object, additionalFields: _propTypes.default.object, close: _propTypes.default.func }; function ProfileForm(_ref) { var _ref$initialValues = _ref.initialValues, initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues, _ref$additionalFields = _ref.additionalFields, additionalFields = _ref$additionalFields === void 0 ? {} : _ref$additionalFields, close = _ref.close; var ethLogin = additionalFields.ethLogin, signupCallback = additionalFields.signupCallback; var signup = useSignUp(additionalFields, close, signupCallback); var onSubmit = useOnSubmit(signup); var showEmailField = initialValues.email ? null : _form.email; var showPass = ethLogin ? null : _form.password; var showConfirmPass = showPass ? _form.confirmPassword : null; var FORM_FIELDS = [_form.image, _form.username, showEmailField, showPass, showConfirmPass].filter(function (f) { return f; }); return /*#__PURE__*/_react.default.createElement(_reactFinalForm.Form // validateOnBlur={true} // validateOnChange={true} , { onSubmit: onSubmit, validate: _validators.passwordsShouldMatch, initialValues: initialValues, mutators: { triggerValidation: function triggerValidation(fieldsToValidate, state, _ref2) { var changeValue = _ref2.changeValue; fieldsToValidate.forEach(function (fieldName) { changeValue(state, fieldName, function (n) { return n; }); }); } }, render: function render(_ref3) { var handleSubmit = _ref3.handleSubmit, form = _ref3.form; return /*#__PURE__*/_react.default.createElement(_web.Form, { onSubmit: handleSubmit }, FORM_FIELDS.map(function (field) { return /*#__PURE__*/_react.default.createElement(_reactFinalForm.Field, (0, _extends2.default)({}, field, { key: field.name, form: form })); }), /*#__PURE__*/_react.default.createElement(_web.View, { sx: { justifyContent: 'flex-end', mt: 6, alignItems: 'center' } }, /*#__PURE__*/_react.default.createElement(_styled.LinkFont, null, "By signing up, you agree to our", ' ', /*#__PURE__*/_react.default.createElement(_styled.InlineLink, { to: "//relevant.community/eula.html", external: true, target: "_blank", inline: 1 }, /*#__PURE__*/_react.default.createElement(_styled.LinkFont, { sx: { color: 'blue' } }, "Terms of Use"))), /*#__PURE__*/_react.default.createElement(_web.Button, { type: "submit", sx: { ml: 3 } }, "Sign Up"))); } }); } function useOnSubmit(signup) { return (0, _react.useCallback)( /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(vals) { var allVals, img; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; allVals = _objectSpread({}, vals); if (!(allVals.image && allVals.image.preview && allVals.image.fileName)) { _context.next = 7; break; } _context.next = 5; return _utils.s3.uploadFile(allVals.image.preview, allVals.image.fileType); case 5: img = _context.sent; allVals.image = img; case 7: signup(allVals); _context.next = 13; break; case 10: _context.prev = 10; _context.t0 = _context["catch"](0); Alert.alert(_context.t0.message, 'error'); case 13: case "end": return _context.stop(); } } }, _callee, null, [[0, 10]]); })); return function (_x) { return _ref4.apply(this, arguments); }; }(), [signup]); } function useSignUp(additionalFields, close, signupCallback) { var auth = (0, _reactRedux.useSelector)(function (state) { return state.auth; }); var dispatch = (0, _reactRedux.useDispatch)(); var invitecode = auth.invitecode; return (0, _react.useCallback)( /*#__PURE__*/function () { var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) { var user; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; user = _objectSpread({ name: data.username, email: data.email, password: data.password, image: data.image }, additionalFields); _context2.next = 4; return dispatch((0, _auth.createUser)(user, invitecode)); case 4: signupCallback && signupCallback(user); close(); _context2.next = 11; break; case 8: _context2.prev = 8; _context2.t0 = _context2["catch"](0); Alert.alert(_context2.t0.message, 'error'); case 11: case "end": return _context2.stop(); } } }, _callee2, null, [[0, 8]]); })); return function (_x2) { return _ref5.apply(this, arguments); }; }(), [additionalFields, dispatch, invitecode, close, signupCallback]); } //# sourceMappingURL=profile.form.js.map