@r3l/app
Version:
217 lines (180 loc) • 8.92 kB
JavaScript
;
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