@stokr/components-library 2.3.41-beta.4 → 2.3.41-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,8 @@ var _Grid = require("../Grid/Grid.styles");
18
18
  var _ComponentWrapper = _interopRequireDefault(require("../ComponentWrapper/ComponentWrapper.styles"));
19
19
  var _AuthContext = require("../../context/AuthContext");
20
20
  var _reactRouterDom = require("react-router-dom");
21
+ var _Input = _interopRequireDefault(require("components/Input/Input"));
22
+ var _fetchData = _interopRequireDefault(require("api/fetchData"));
21
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
24
  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); }
23
25
  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; }
@@ -56,19 +58,23 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
56
58
  _useState4 = _slicedToArray(_useState3, 2),
57
59
  isCheckingToken = _useState4[0],
58
60
  setIsCheckingToken = _useState4[1];
59
- var _useState5 = (0, _react.useState)(null),
60
- _useState6 = _slicedToArray(_useState5, 2),
61
- tokenError = _useState6[0],
62
- setTokenError = _useState6[1];
63
61
  var location = (0, _reactRouterDom.useLocation)();
64
62
  var initialValues = {
65
63
  password: '',
66
- confirmPassword: ''
64
+ confirmPassword: '',
65
+ email: ''
67
66
  };
67
+
68
+ // main form validation schema (password reset)
68
69
  var validationSchema = Yup.object().shape({
69
70
  password: Yup.string().required("Oops, this can't be blank"),
70
71
  confirmPassword: Yup.string().required("Oops, this can't be blank")
71
72
  });
73
+
74
+ // email-only validation schema (for expired token form)
75
+ var emailValidationSchema = Yup.object().shape({
76
+ email: Yup.string().required("Oops, this can't be blank").matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, 'Please enter a valid email address')
77
+ });
72
78
  var checkTokenExpiration = /*#__PURE__*/function () {
73
79
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
74
80
  var search, query, oobCode, result;
@@ -76,62 +82,87 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
76
82
  while (1) switch (_context.prev = _context.next) {
77
83
  case 0:
78
84
  if (location) {
79
- _context.next = 6;
85
+ _context.next = 5;
80
86
  break;
81
87
  }
82
88
  console.log('Location null ?! ');
83
89
  setIsTokenExpired(true);
84
90
  setIsCheckingToken(false);
85
- setTokenError({
86
- message: 'No location information available'
87
- });
88
91
  return _context.abrupt("return");
89
- case 6:
90
- _context.prev = 6;
92
+ case 5:
93
+ _context.prev = 5;
91
94
  search = location.search;
92
95
  query = new URLSearchParams(search);
93
96
  oobCode = query.get('oobCode');
94
97
  console.log('oobCode from URL params: ', oobCode);
95
98
  if (oobCode) {
96
- _context.next = 17;
99
+ _context.next = 15;
97
100
  break;
98
101
  }
99
102
  console.log('oobCode was not found at all. value: ', oobCode);
100
103
  setIsTokenExpired(true);
101
104
  setIsCheckingToken(false);
102
- setTokenError({
103
- message: 'No activation code found in the URL'
104
- });
105
105
  return _context.abrupt("return");
106
- case 17:
107
- _context.next = 19;
106
+ case 15:
107
+ _context.next = 17;
108
108
  return authContext.checkActivationLinkExpired(oobCode);
109
- case 19:
109
+ case 17:
110
110
  result = _context.sent;
111
- console.log('Token check result:', result); // Debug log
112
-
113
111
  setIsTokenExpired(result.expired);
114
- setTokenError(result.error);
115
112
  setIsCheckingToken(false);
116
- _context.next = 32;
113
+ _context.next = 27;
117
114
  break;
118
- case 26:
119
- _context.prev = 26;
120
- _context.t0 = _context["catch"](6);
115
+ case 22:
116
+ _context.prev = 22;
117
+ _context.t0 = _context["catch"](5);
121
118
  console.error('Error checking token expiration:', _context.t0);
122
119
  setIsTokenExpired(true);
123
- setTokenError(_context.t0);
124
120
  setIsCheckingToken(false);
125
- case 32:
121
+ case 27:
126
122
  case "end":
127
123
  return _context.stop();
128
124
  }
129
- }, _callee, null, [[6, 26]]);
125
+ }, _callee, null, [[5, 22]]);
130
126
  }));
131
127
  return function checkTokenExpiration() {
132
128
  return _ref2.apply(this, arguments);
133
129
  };
134
130
  }();
131
+ var resendActivationEmail = /*#__PURE__*/function () {
132
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values) {
133
+ var response;
134
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
135
+ while (1) switch (_context2.prev = _context2.next) {
136
+ case 0:
137
+ _context2.prev = 0;
138
+ _context2.next = 3;
139
+ return (0, _fetchData.default)('auth/resend-activation-email', {
140
+ method: 'POST',
141
+ headers: {
142
+ 'Content-Type': 'application/json'
143
+ },
144
+ body: JSON.stringify({
145
+ email: values.email
146
+ })
147
+ });
148
+ case 3:
149
+ response = _context2.sent;
150
+ console.log('response from resend: ', response);
151
+ return _context2.abrupt("return", response);
152
+ case 8:
153
+ _context2.prev = 8;
154
+ _context2.t0 = _context2["catch"](0);
155
+ console.error('There was an error while resending the activation email.', _context2.t0);
156
+ case 11:
157
+ case "end":
158
+ return _context2.stop();
159
+ }
160
+ }, _callee2, null, [[0, 8]]);
161
+ }));
162
+ return function resendActivationEmail(_x) {
163
+ return _ref3.apply(this, arguments);
164
+ };
165
+ }();
135
166
  var renderExpiredTokenContent = function renderExpiredTokenContent() {
136
167
  return /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
137
168
  isOpen: true,
@@ -140,7 +171,7 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
140
171
  part: 8
141
172
  }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, {
142
173
  modalTop: true
143
- }, /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("h3", null, "LINK EXPIRED"), /*#__PURE__*/_react.default.createElement("p", null, "Your password reset link has expired or is invalid."))), /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, {
174
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("h3", null, "THIS INVITE LINK HAS EXPIRED"), /*#__PURE__*/_react.default.createElement("p", null, "To continue, request a new one using your email, and access will be sent shortly."))), /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, {
144
175
  modalBot: true
145
176
  }, /*#__PURE__*/_react.default.createElement(_Modal.ModalLinkWrap, null, 'Need to reset your password? ', /*#__PURE__*/_react.default.createElement(_Modal.ModalLink, {
146
177
  to: "/forgot-password",
@@ -148,14 +179,54 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
148
179
  onClick: onModalSwitch
149
180
  }, "Request a new link")))), /*#__PURE__*/_react.default.createElement(_Grid.Column, {
150
181
  part: 8
151
- }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("p", null, (tokenError === null || tokenError === void 0 ? void 0 : tokenError.message) || 'The password reset link you used is no longer valid. Please request a new one.')), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
152
- noPaddingBottom: true,
153
- noPaddingHorizontal: true
154
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
155
- type: "button",
156
- fluid: true,
157
- onClick: onModalSwitch
158
- }, "Request a new link")))))));
182
+ }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, /*#__PURE__*/_react.default.createElement(_formik.Formik, {
183
+ initialValues: {
184
+ email: ''
185
+ },
186
+ validationSchema: emailValidationSchema,
187
+ onSubmit: function onSubmit(values) {
188
+ resendActivationEmail(values);
189
+ }
190
+ }, function (_ref4) {
191
+ var values = _ref4.values,
192
+ errors = _ref4.errors,
193
+ touched = _ref4.touched,
194
+ handleBlur = _ref4.handleBlur,
195
+ setFieldValue = _ref4.setFieldValue,
196
+ setFieldTouched = _ref4.setFieldTouched;
197
+ var onChangeWithTouch = function onChangeWithTouch(e) {
198
+ var field = e.target;
199
+ setFieldValue(field.name, field.value, false);
200
+ setFieldTouched(field.name);
201
+ };
202
+ return /*#__PURE__*/_react.default.createElement(_Form.default, null, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
203
+ noPadding: true
204
+ }, /*#__PURE__*/_react.default.createElement(_Form.FormField, null, /*#__PURE__*/_react.default.createElement(_Input.default, {
205
+ id: "resend-activation-email",
206
+ name: "email",
207
+ type: "email",
208
+ label: "Email",
209
+ value: values.email,
210
+ onChange: onChangeWithTouch,
211
+ onBlur: handleBlur,
212
+ error: !!errors.email && touched.email,
213
+ touched: !!touched.email,
214
+ info: "Please provide your email so you can receive the new activation email."
215
+ }), /*#__PURE__*/_react.default.createElement(_Form.FormError, {
216
+ show: errors.email && touched.email
217
+ }, errors.email))), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
218
+ noPaddingBottom: true,
219
+ noPaddingHorizontal: true
220
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
221
+ type: "submit",
222
+ fluid: true
223
+ }, isActionLoading === 'resetPassword' ? 'Sending' : 'Resend link')), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
224
+ paddingVeticalHalf: true,
225
+ noPaddingHorizontal: true
226
+ }, /*#__PURE__*/_react.default.createElement(_Form.FormError, {
227
+ show: popupError.popup === 'resetPassword'
228
+ }, popupError.message)));
229
+ })))));
159
230
  };
160
231
  var renderLoadingContent = function renderLoadingContent() {
161
232
  return /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
@@ -209,13 +280,13 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
209
280
  oobCode: oobCode
210
281
  }));
211
282
  }
212
- }, function (_ref3) {
213
- var values = _ref3.values,
214
- errors = _ref3.errors,
215
- touched = _ref3.touched,
216
- handleBlur = _ref3.handleBlur,
217
- setFieldValue = _ref3.setFieldValue,
218
- setFieldTouched = _ref3.setFieldTouched;
283
+ }, function (_ref5) {
284
+ var values = _ref5.values,
285
+ errors = _ref5.errors,
286
+ touched = _ref5.touched,
287
+ handleBlur = _ref5.handleBlur,
288
+ setFieldValue = _ref5.setFieldValue,
289
+ setFieldTouched = _ref5.setFieldTouched;
219
290
  var onChangeWithTouch = function onChangeWithTouch(e) {
220
291
  var field = e.target;
221
292
  setFieldValue(field.name, field.value, false);
@@ -235,7 +306,6 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
235
306
  error: !!errors.password,
236
307
  touched: !!touched.password,
237
308
  info: "For a stronger password, try a mix of lowercase, capitals, numbers and special characters."
238
- // showStrength
239
309
  }), /*#__PURE__*/_react.default.createElement(_Form.FormError, {
240
310
  show: errors.password && touched.password
241
311
  }, errors.password), /*#__PURE__*/_react.default.createElement(_Form.FormError, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stokr/components-library",
3
- "version": "2.3.41-beta.4",
3
+ "version": "2.3.41-beta.5",
4
4
  "description": "STOKR - Components Library",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",