UNPKG

13.5 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _toPairs2 = require('ramda/src/toPairs');
8
9var _toPairs3 = _interopRequireDefault(_toPairs2);
10
11var _map2 = require('ramda/src/map');
12
13var _map3 = _interopRequireDefault(_map2);
14
15var _all2 = require('ramda/src/all');
16
17var _all3 = _interopRequireDefault(_all2);
18
19var _compose2 = require('ramda/src/compose');
20
21var _compose3 = _interopRequireDefault(_compose2);
22
23var _isEmpty2 = require('ramda/src/isEmpty');
24
25var _isEmpty3 = _interopRequireDefault(_isEmpty2);
26
27var _isNil2 = require('ramda/src/isNil');
28
29var _isNil3 = _interopRequireDefault(_isNil2);
30
31var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
32
33var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
34
35var _templateObject = _taggedTemplateLiteral(['\n color: brown;\n font-weight: bold;\n margin-bottom: 0.5em;\n'], ['\n color: brown;\n font-weight: bold;\n margin-bottom: 0.5em;\n']);
36
37var _react = require('react');
38
39var _react2 = _interopRequireDefault(_react);
40
41var _semanticUiReact = require('semantic-ui-react');
42
43var _styledComponents = require('styled-components');
44
45var _styledComponents2 = _interopRequireDefault(_styledComponents);
46
47function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
49function _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; }
50
51function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
52
53function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
54
55function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
56
57function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
58
59var errorStyle = {
60 color: 'brown'
61};
62
63var LoginError = _styledComponents2.default.div(_templateObject);
64
65var validate = function validate(_ref, isReset) {
66 var userName = _ref.userName,
67 password = _ref.password,
68 newPassword = _ref.newPassword,
69 newConfirmPassword = _ref.newConfirmPassword;
70 return {
71 userNameError: (0, _isNil3.default)(userName) || (0, _isEmpty3.default)(userName) ? 'User name must be entered' : undefined,
72 passwordError: (0, _isNil3.default)(password) || (0, _isEmpty3.default)(password) ? 'Password must be entered' : undefined,
73 newPasswordError: !isReset ? undefined : (0, _isNil3.default)(newPassword) || (0, _isEmpty3.default)(newPassword) ? 'New Password must be entered' : newPassword !== newConfirmPassword ? 'New Password does not confirm password' : undefined,
74 newConfirmPasswordError: !isReset ? undefined : (0, _isNil3.default)(newConfirmPassword) || (0, _isEmpty3.default)(newConfirmPassword) ? 'Password Confirm must be entered' : newPassword !== newConfirmPassword ? 'Password confirm does not match password' : undefined,
75 passwordLength: isReset && newPassword != null && newPassword.trim().length < 6,
76 passwordNum: isReset && newPassword != null && !newPassword.match(/\s*[0-9]+\s*/),
77 passwordUpper: isReset && newPassword != null && !newPassword.match(/\s*[A-Z]+\s*/),
78 passwordLower: isReset && newPassword != null && !newPassword.match(/\s*[a-z]+\s*/)
79 };
80};
81
82var isValid = (0, _compose3.default)((0, _all3.default)(function (val) {
83 return !val;
84}), (0, _map3.default)(function (_ref2) {
85 var _ref3 = _slicedToArray(_ref2, 2),
86 _ = _ref3[0],
87 value = _ref3[1];
88
89 return value;
90}), _toPairs3.default);
91
92var LoginComp = function (_React$Component) {
93 _inherits(LoginComp, _React$Component);
94
95 function LoginComp() {
96 var _ref4;
97
98 var _temp, _this, _ret;
99
100 _classCallCheck(this, LoginComp);
101
102 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
103 args[_key] = arguments[_key];
104 }
105
106 return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref4 = LoginComp.__proto__ || Object.getPrototypeOf(LoginComp)).call.apply(_ref4, [this].concat(args))), _this), _this.state = { userName: _this.props.userName }, _this.setFieldValue = function (_, _ref5) {
107 var name = _ref5.name,
108 value = _ref5.value;
109
110 _this.setState(function (state) {
111 var _ref6;
112
113 return _ref6 = {}, _defineProperty(_ref6, name, value), _defineProperty(_ref6, 'userNameError', name === 'userName' ? null : state.userNameError), _defineProperty(_ref6, 'passwordError', name === 'password' ? null : state.passwordError), _defineProperty(_ref6, 'newPasswordError', name === 'newPassword' ? null : state.newPasswordError), _defineProperty(_ref6, 'newConfirmPasswordError', name === 'newConfirmPassword' ? null : state.newConfirmPasswordError), _defineProperty(_ref6, 'passwordLength', name === 'newPassword' && state.isReset && value != null && value.trim().length < 6), _defineProperty(_ref6, 'passwordNum', name === 'newPassword' && state.isReset && value != null && !value.match(/\s*[0-9]+\s*/)), _defineProperty(_ref6, 'passwordUpper', name === 'newPassword' && state.isReset && value != null && !value.match(/\s*[A-Z]+\s*/)), _defineProperty(_ref6, 'passwordLower', name === 'newPassword' && state.isReset && value != null && !value.match(/\s*[a-z]+\s*/)), _ref6;
114 });
115 if (_this.props.clearLoginError) {
116 _this.props.clearLoginError();
117 }
118 }, _this.loginClicked = function (e) {
119 e.preventDefault();
120 var _this$props = _this.props,
121 doLogin = _this$props.doLogin,
122 reset = _this$props.reset;
123 // const { userName, password } = this.state || {}
124
125 var msg = validate(_this.state, reset);
126 console.log(msg);
127 if (isValid(msg)) {
128 doLogin && doLogin(_this.state);
129 } else {
130 _this.setState(msg);
131 }
132 }, _this.keyDown = function (e) {
133 if (e.keyCode === 13) {
134 _this.loginClicked(e);
135 }
136 }, _temp), _possibleConstructorReturn(_this, _ret);
137 }
138
139 _createClass(LoginComp, [{
140 key: 'render',
141 value: function render() {
142 var _state = this.state,
143 password = _state.password,
144 userName = _state.userName,
145 userNameError = _state.userNameError,
146 passwordError = _state.passwordError,
147 newPassword = _state.newPassword,
148 newConfirmPassword = _state.newConfirmPassword,
149 newPasswordError = _state.newPasswordError,
150 newConfirmPasswordError = _state.newConfirmPasswordError,
151 passwordLength = _state.passwordLength,
152 passwordNum = _state.passwordNum,
153 passwordUpper = _state.passwordUpper,
154 passwordLower = _state.passwordLower;
155 var _props = this.props,
156 style = _props.style,
157 className = _props.className,
158 loading = _props.loading,
159 initialErrorMsg = _props.initialErrorMsg,
160 loginError = _props.loginError,
161 reset = _props.reset;
162
163 return _react2.default.createElement(
164 _semanticUiReact.Form,
165 { style: style, className: className },
166 _react2.default.createElement(
167 _semanticUiReact.Form.Field,
168 null,
169 _react2.default.createElement(
170 'label',
171 null,
172 'User Name'
173 ),
174 _react2.default.createElement(_semanticUiReact.Input, {
175 value: userName || '',
176 onChange: this.setFieldValue,
177 name: 'userName',
178 placeholder: 'User Name',
179 disabled: reset,
180 error: !(0, _isNil3.default)(userNameError)
181 }),
182 userNameError && _react2.default.createElement(
183 'label',
184 { style: errorStyle },
185 userNameError
186 )
187 ),
188 _react2.default.createElement(
189 _semanticUiReact.Form.Field,
190 null,
191 _react2.default.createElement(
192 'label',
193 null,
194 'Password'
195 ),
196 _react2.default.createElement(_semanticUiReact.Input, {
197 value: password || '',
198 onChange: this.setFieldValue,
199 name: 'password',
200 type: 'password',
201 placeholder: 'Password',
202 error: !(0, _isNil3.default)(passwordError),
203 onKeyDown: this.keyDown
204 }),
205 passwordError && _react2.default.createElement(
206 'label',
207 { style: errorStyle },
208 passwordError
209 )
210 ),
211 reset && _react2.default.createElement(
212 _semanticUiReact.Form.Field,
213 null,
214 _react2.default.createElement(
215 'label',
216 null,
217 'New Password'
218 ),
219 _react2.default.createElement(_semanticUiReact.Input, {
220 value: newPassword || '',
221 onChange: this.setFieldValue,
222 name: 'newPassword',
223 type: 'password',
224 placeholder: 'New Password',
225 error: !(0, _isNil3.default)(newPasswordError),
226 onKeyDown: this.keyDown
227 }),
228 newPasswordError && _react2.default.createElement(
229 'label',
230 { style: errorStyle },
231 newPasswordError
232 )
233 ),
234 reset && _react2.default.createElement(
235 _semanticUiReact.Form.Field,
236 null,
237 _react2.default.createElement(
238 'label',
239 null,
240 'Confirm New Password'
241 ),
242 _react2.default.createElement(_semanticUiReact.Input, {
243 value: newConfirmPassword || '',
244 onChange: this.setFieldValue,
245 name: 'newConfirmPassword',
246 type: 'password',
247 placeholder: 'Confirm New Password',
248 error: !(0, _isNil3.default)(newConfirmPasswordError),
249 onKeyDown: this.keyDown
250 }),
251 newConfirmPasswordError && _react2.default.createElement(
252 'label',
253 { style: errorStyle },
254 newConfirmPasswordError
255 )
256 ),
257 loginError && (loginError.errorMsg || loginError.message) ? _react2.default.createElement(
258 LoginError,
259 null,
260 loginError.errorMsg || loginError.message
261 ) : initialErrorMsg && _react2.default.createElement(
262 LoginError,
263 null,
264 initialErrorMsg
265 ),
266 reset && _react2.default.createElement(
267 LoginError,
268 null,
269 'Your Pasword is expired. Please update password to continue.'
270 ),
271 passwordNum && _react2.default.createElement(
272 LoginError,
273 null,
274 'New password must contain at least 1 number'
275 ),
276 passwordLength && _react2.default.createElement(
277 LoginError,
278 null,
279 'New password must be at least 6 letters or digits'
280 ),
281 passwordUpper && _react2.default.createElement(
282 LoginError,
283 null,
284 'New password must contain at least 1 upper case letter'
285 ),
286 passwordLower && _react2.default.createElement(
287 LoginError,
288 null,
289 'New password must contain at least 1 lower case letter'
290 ),
291 _react2.default.createElement(
292 _semanticUiReact.Button,
293 {
294 loading: loading,
295 onClick: this.loginClicked,
296 fluid: true,
297 primary: true,
298 'data-testid': 'loginButton'
299 },
300 reset ? 'Update Password' : 'Login'
301 )
302 );
303 }
304 }]);
305
306 return LoginComp;
307}(_react2.default.Component);
308
309exports.default = LoginComp;
310//# sourceMappingURL=LoginComp.js.map
\No newline at end of file