@risecx/carespace-chat-ui
Version:
carespace-chat-ui React component
382 lines (314 loc) • 16.1 kB
JavaScript
"use strict";
exports.__esModule = true;
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _react = _interopRequireWildcard(require("react"));
var _reactjsLocalstorage = require("reactjs-localstorage");
var _axios = _interopRequireDefault(require("axios"));
var _Button = _interopRequireDefault(require("../../Button"));
require("./register.css");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var options = [{
key: 'male',
text: 'Male',
value: 'male'
}, {
key: 'female',
text: 'Female',
value: 'female'
}, {
key: 'other',
text: 'Other',
value: 'other'
}];
var Register = /*#__PURE__*/function (_Component) {
_inheritsLoose(Register, _Component);
function Register(props) {
var _this;
_this = _Component.call(this, props) || this;
_defineProperty(_assertThisInitialized(_this), "onInputChange", function (e) {
var _extends2;
console.log(e.target.name);
var value = e.target.name === 'birthday' ? _this.formatDate(e.target.value) : e.target.value;
_this.setState({
error: false,
errorFields: [],
userData: _extends({}, _this.state.userData, (_extends2 = {}, _extends2[e.target.name] = value, _extends2))
});
});
_defineProperty(_assertThisInitialized(_this), "onStealthCheckbox", function (e) {
_this.setState({
stealthCheckbox: e.target.checked
});
});
_defineProperty(_assertThisInitialized(_this), "formatDate", function (value) {
var splitted = value.split('-');
return splitted[1] + "-" + splitted[2] + "-" + splitted[0];
});
_defineProperty(_assertThisInitialized(_this), "renderFields", function (fields) {
var data = [];
for (var item in fields) {
var field = fields[item];
if (fields[item].enabled) data.push(_this.renderProperInputField(field, item));
}
return data;
});
_defineProperty(_assertThisInitialized(_this), "renderProperInputField", function (field, name) {
switch (field.control) {
case 'email':
case 'Input':
return /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group",
key: name
}, /*#__PURE__*/_react["default"].createElement("p", null, field.label, /*#__PURE__*/_react["default"].createElement("span", null, "*")), /*#__PURE__*/_react["default"].createElement("input", {
type: "text",
name: name,
id: name,
onChange: _this.onInputChange
}));
case 'Select':
return /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group",
key: name
}, /*#__PURE__*/_react["default"].createElement("p", null, field.label, /*#__PURE__*/_react["default"].createElement("span", null, "*")), /*#__PURE__*/_react["default"].createElement("select", {
name: name,
id: name,
onChange: _this.onInputChange,
style: {
width: 'calc(100% - 6px)'
}
}, /*#__PURE__*/_react["default"].createElement("option", {
disabled: true,
selected: true
}, "Select"), options.map(function (opt, index) {
return /*#__PURE__*/_react["default"].createElement("option", {
key: index,
value: opt.value
}, opt.text);
})));
case 'DateInput':
return /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group",
key: name
}, /*#__PURE__*/_react["default"].createElement("p", null, field.label, /*#__PURE__*/_react["default"].createElement("span", null, "*")), /*#__PURE__*/_react["default"].createElement("input", {
type: "date",
name: name,
id: name,
onChange: _this.onInputChange
}));
default:
break;
}
});
_this.state = {
error: false,
errorFields: [],
fields: {},
userData: {
firstName: '',
lastName: '',
email: '',
gender: '',
birthday: '',
mobilePhone: '',
password: '',
stealth: {
enrollment: false
}
},
stealthCheckbox: false
};
return _this;
}
var _proto = Register.prototype;
_proto.componentWillMount = /*#__PURE__*/function () {
var _componentWillMount = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var urlAPI, _yield$axios$get, data;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
urlAPI = this.props.clientConfig.urlAPI;
_context.next = 3;
return _axios["default"].get(urlAPI + "/auth/register/fields");
case 3:
_yield$axios$get = _context.sent;
data = _yield$axios$get.data;
this.setState({
fields: data
});
case 6:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function componentWillMount() {
return _componentWillMount.apply(this, arguments);
}
return componentWillMount;
}();
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
this.scrollList.scrollTop = this.scrollList.scrollHeight;
};
_proto.updateLocastorage = function updateLocastorage(_ref) {
var user = _ref.user,
token = _ref.token;
_reactjsLocalstorage.reactLocalStorage.setObject('user', user);
_reactjsLocalstorage.reactLocalStorage.set('userId', user.id);
_reactjsLocalstorage.reactLocalStorage.set('token', token);
_reactjsLocalstorage.reactLocalStorage.set('isAnonymous', false);
};
_proto.submitFormHandler = /*#__PURE__*/function () {
var _submitFormHandler = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
var _this2 = this;
var _this$state, _this$state$userData, email, firstName, lastName, password, stealthCheckbox, errorFields, error, urlAPI, _yield$axios$post, data, _error, fields;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_this$state = this.state, _this$state$userData = _this$state.userData, email = _this$state$userData.email, firstName = _this$state$userData.firstName, lastName = _this$state$userData.lastName, password = _this$state$userData.password, stealthCheckbox = _this$state.stealthCheckbox, errorFields = _this$state.errorFields;
error = [];
if (email === '') error.push('email.blank');
if (firstName === '') error.push('firstName.blank');
if (lastName === '') error.push('lastName.blank');
if (password === '') error.push('password.blank');
if (password.length < 8) error.push('password.shorter');
if (!(error.length > 0)) {
_context3.next = 9;
break;
}
return _context3.abrupt("return", this.setState({
error: true,
errorFields: [].concat(errorFields, error)
}));
case 9:
_context3.prev = 9;
urlAPI = this.props.clientConfig.urlAPI;
_context3.next = 13;
return _axios["default"].post(urlAPI + "/auth/register", this.state.userData);
case 13:
_yield$axios$post = _context3.sent;
data = _yield$axios$post.data;
if (stealthCheckbox) {
window.enrollCaptureUser(data.user._id, /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(params) {
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!(params.responseCode === 200 || params.responseCode === 409)) {
_context2.next = 4;
break;
}
data.user.stealth.enrollment = true;
_context2.next = 4;
return _axios["default"].put(urlAPI + "/users/" + data.user.id + "/profile", data.user, {
headers: {
'x-access-token': data.token
}
});
case 4:
_this2.updateLocastorage(data);
_this2.props.onChangeAuthStatus();
case 6:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function (_x) {
return _ref2.apply(this, arguments);
};
}());
} else {
this.updateLocastorage(data);
this.props.onChangeAuthStatus();
}
_context3.next = 23;
break;
case 18:
_context3.prev = 18;
_context3.t0 = _context3["catch"](9);
_error = _context3.t0.response.data;
fields = Object.keys(_error.fieldErrors);
this.setState({
error: true,
errorFields: fields
});
case 23:
case "end":
return _context3.stop();
}
}
}, _callee3, this, [[9, 18]]);
}));
function submitFormHandler() {
return _submitFormHandler.apply(this, arguments);
}
return submitFormHandler;
}();
_proto.render = function render() {
var _this3 = this;
var helloMessage = this.props.clientConfig.helloMessage;
var _this$state2 = this.state,
error = _this$state2.error,
errorFields = _this$state2.errorFields,
fields = _this$state2.fields,
stealthCheckbox = _this$state2.stealthCheckbox;
return /*#__PURE__*/_react["default"].createElement("div", {
className: "card-container-out",
style: {
height: '100%'
},
ref: function ref(el) {
return _this3.scrollList = el;
}
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "sc-auth--register"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "container"
}, /*#__PURE__*/_react["default"].createElement("form", {
className: error ? 'error' : ''
}, this.renderFields(fields), /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group"
}, /*#__PURE__*/_react["default"].createElement("p", null, "Password", /*#__PURE__*/_react["default"].createElement("span", null, "*")), /*#__PURE__*/_react["default"].createElement("input", {
type: "password",
name: "password",
id: "password",
onChange: this.onInputChange
})), /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group stealth"
}, /*#__PURE__*/_react["default"].createElement("input", {
type: "checkbox",
name: "stealth",
checked: stealthCheckbox,
onChange: this.onStealthCheckbox
}), /*#__PURE__*/_react["default"].createElement("label", null, "Accept and Use UNISYS Stealth Identity Management")), error && /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group error-message"
}, /*#__PURE__*/_react["default"].createElement("ul", null, errorFields.includes('user.email') && /*#__PURE__*/_react["default"].createElement("li", null, "The E-mail already exists."), errorFields.includes('firstName.blank') && /*#__PURE__*/_react["default"].createElement("li", null, "The First Name field can not be blank."), errorFields.includes('lastName.blank') && /*#__PURE__*/_react["default"].createElement("li", null, "The Last Name field can not be blank."), errorFields.includes('email.blank') && /*#__PURE__*/_react["default"].createElement("li", null, "The E-mail field can not be blank."), errorFields.includes('password.blank') && /*#__PURE__*/_react["default"].createElement("li", null, "The Password field can not be blank."), errorFields.includes('password.shorter') && /*#__PURE__*/_react["default"].createElement("li", null, "The Password is shorter than the minimum of 8 characters"))))), /*#__PURE__*/_react["default"].createElement("div", {
className: "buttons"
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
classs: "outline",
title: "Register",
onClick: this.submitFormHandler.bind(this)
})), /*#__PURE__*/_react["default"].createElement("a", {
className: "btn-cancel",
onClick: this.props.onClickRegister.bind(this)
}, "Cancel")));
};
return Register;
}(_react.Component);
var _default = Register;
exports["default"] = _default;
module.exports = exports.default;