UNPKG

@risecx/carespace-chat-ui

Version:

carespace-chat-ui React component

382 lines (314 loc) 16.1 kB
"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;