@risecx/carespace-chat-ui
Version:
carespace-chat-ui React component
301 lines (243 loc) • 11.7 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _react = _interopRequireWildcard(require("react"));
var _axios = _interopRequireDefault(require("axios"));
var _Button = _interopRequireDefault(require("../../Button"));
require("./login.css");
var _Reducer = require("./Reducer");
var _useDebounce = _interopRequireDefault(require("../../../hooks/useDebounce"));
var _this = void 0;
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 _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 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); }); }; }
var Login = function Login(props) {
var urlAPI = props.clientConfig.urlAPI;
var _useReducer = (0, _react.useReducer)(_Reducer.Reducer.reducer, _Reducer.Reducer.initialState),
_useReducer$ = _useReducer[0],
isAnonymous = _useReducer$.isAnonymous,
user = _useReducer$.user,
dispatch = _useReducer[1];
var _useState = (0, _react.useState)({
loginId: '',
password: ''
}),
loginForm = _useState[0],
setLoginForm = _useState[1];
var _useState2 = (0, _react.useState)(false),
error = _useState2[0],
setError = _useState2[1];
var _useState3 = (0, _react.useState)(false),
stealthStatusApplication = _useState3[0],
setStealthStatusApplication = _useState3[1];
var _useState4 = (0, _react.useState)({}),
stealthUser = _useState4[0],
setStealthUser = _useState4[1];
var debouncedSearchTerm = (0, _useDebounce["default"])(loginForm.loginId, 500);
var onBlurEmail = (0, _react.useCallback)( /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(email) {
var _yield$axios$post, data;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return _axios["default"].post(urlAPI + "/users/email", {
email: email
});
case 3:
_yield$axios$post = _context.sent;
data = _yield$axios$post.data;
if (data.statusCode === 200) {
setStealthUser(data.stealth);
}
if (data.statusCode === 404) {
setStealthUser({});
}
_context.next = 13;
break;
case 9:
_context.prev = 9;
_context.t0 = _context["catch"](0);
console.log(_context.t0);
setStealthUser({});
case 13:
case "end":
return _context.stop();
}
}
}, _callee, null, [[0, 9]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}(), []);
var onInputChange = (0, _react.useCallback)(function (e) {
var _extends2;
setLoginForm(_extends({}, loginForm, (_extends2 = {}, _extends2[e.target.name] = e.target.value, _extends2)));
}, [loginForm]);
var submitFormHandler = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
var _yield$axios$post2, data;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_context2.next = 3;
return _axios["default"].post(urlAPI + "/auth/login", loginForm);
case 3:
_yield$axios$post2 = _context2.sent;
data = _yield$axios$post2.data;
_Reducer.Actions.setUser(dispatch, data);
props.onChangeAuthStatus(data);
_context2.next = 12;
break;
case 9:
_context2.prev = 9;
_context2.t0 = _context2["catch"](0);
setError(true);
case 12:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 9]]);
}));
return function submitFormHandler() {
return _ref2.apply(this, arguments);
};
}();
var onStealth = (0, _react.useCallback)(function () {
window.authenticateEnrolledUser(stealthUser._id, /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(params) {
var _yield$axios$post3, data;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
if (!(params.responseCode === 200)) {
_context3.next = 15;
break;
}
_context3.prev = 1;
_context3.next = 4;
return _axios["default"].post(urlAPI + "/auth/stealth/login", {
userId: stealthUser._id
});
case 4:
_yield$axios$post3 = _context3.sent;
data = _yield$axios$post3.data;
_Reducer.Actions.setUser(dispatch, data);
props.onChangeAuthStatus(data);
_context3.next = 13;
break;
case 10:
_context3.prev = 10;
_context3.t0 = _context3["catch"](1);
setError(true);
case 13:
_context3.next = 16;
break;
case 15:
setError(true);
case 16:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[1, 10]]);
}));
return function (_x2) {
return _ref3.apply(this, arguments);
};
}());
}, [window.authenticateEnrolledUser, stealthUser]);
(0, _react.useEffect)(function () {
if (debouncedSearchTerm) {
onBlurEmail(debouncedSearchTerm);
} else {
var fetchData = /*#__PURE__*/function () {
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
var _yield$axios$get, data;
return _regenerator["default"].wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.prev = 0;
_context4.next = 3;
return _axios["default"].get(urlAPI + "/auth/stealth");
case 3:
_yield$axios$get = _context4.sent;
data = _yield$axios$get.data;
setStealthStatusApplication(data === null || data === void 0 ? void 0 : data.enable);
_context4.next = 11;
break;
case 8:
_context4.prev = 8;
_context4.t0 = _context4["catch"](0);
setError(true);
case 11:
case "end":
return _context4.stop();
}
}
}, _callee4, null, [[0, 8]]);
}));
return function fetchData() {
return _ref4.apply(this, arguments);
};
}();
fetchData();
}
}, [debouncedSearchTerm, props]);
return /*#__PURE__*/_react["default"].createElement("div", {
className: "sc-auth--login"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "container"
}, /*#__PURE__*/_react["default"].createElement("form", {
className: error ? 'error' : ''
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group"
}, /*#__PURE__*/_react["default"].createElement("p", null, "E-mail", /*#__PURE__*/_react["default"].createElement("span", null, "*")), /*#__PURE__*/_react["default"].createElement("input", {
type: "email",
name: "loginId",
id: "email",
onChange: onInputChange
})), /*#__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: onInputChange
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
className: "btn-forgot-password",
onClick: props.onForgotPassword.bind(_this)
}, "Forgot password?")), error && /*#__PURE__*/_react["default"].createElement("div", {
className: "form-group error-message"
}, "Login failed! Invalid e-mail or password"))), /*#__PURE__*/_react["default"].createElement("div", {
className: "buttons"
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
classs: "outline first",
title: "Sign In",
onClick: submitFormHandler.bind(_this)
}), stealthStatusApplication && (stealthUser === null || stealthUser === void 0 ? void 0 : stealthUser.enrollment) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
className: "or"
}, "Or"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
classs: "outline",
title: "Sign In With Stealth",
onClick: onStealth
}))), /*#__PURE__*/_react["default"].createElement("a", {
className: "btn-cancel",
onClick: props.onClickLogin.bind(_this)
}, "Cancel"));
};
var _default = (0, _react.memo)(Login);
exports["default"] = _default;
module.exports = exports.default;