@stokr/components-library 2.3.41-beta.10 → 2.3.41-beta.11

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.
@@ -58,6 +58,14 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
58
58
  _useState4 = _slicedToArray(_useState3, 2),
59
59
  isCheckingToken = _useState4[0],
60
60
  setIsCheckingToken = _useState4[1];
61
+ var _useState5 = (0, _react.useState)(false),
62
+ _useState6 = _slicedToArray(_useState5, 2),
63
+ isSubmitting = _useState6[0],
64
+ setIsSubmitting = _useState6[1];
65
+ var _useState7 = (0, _react.useState)(false),
66
+ _useState8 = _slicedToArray(_useState7, 2),
67
+ activationSuccess = _useState8[0],
68
+ setActivationSuccess = _useState8[1];
61
69
  var location = (0, _reactRouterDom.useLocation)();
62
70
  var initialValues = {
63
71
  password: '',
@@ -129,28 +137,58 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
129
137
  };
130
138
  }();
131
139
  var handleResendActivationMail = /*#__PURE__*/function () {
132
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values) {
133
- var response;
140
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values, formikActions) {
141
+ var response, urlObj, params, newOobCode, currentUrl;
134
142
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
135
143
  while (1) switch (_context2.prev = _context2.next) {
136
144
  case 0:
137
145
  _context2.prev = 0;
138
- _context2.next = 3;
146
+ setIsSubmitting(true);
147
+ _context2.next = 4;
139
148
  return _Auth.default.resendActivationEmail(values.email);
140
- case 3:
149
+ case 4:
141
150
  response = _context2.sent;
151
+ // new oobCode is in response URL
152
+ if (response) {
153
+ urlObj = new URL(response);
154
+ params = new URLSearchParams(urlObj.search);
155
+ newOobCode = params.get('oobCode');
156
+ if (newOobCode) {
157
+ // update the URL with the new oobCode without reloading the page
158
+ currentUrl = new URL(window.location.href);
159
+ currentUrl.searchParams.set('oobCode', newOobCode);
160
+ window.history.replaceState({}, '', currentUrl.toString());
161
+
162
+ // reset states to show the password reset form
163
+ setIsTokenExpired(false);
164
+ setActivationSuccess(true);
165
+
166
+ // small delay for UI sakes
167
+ setTimeout(function () {
168
+ setIsSubmitting(false);
169
+ }, 1000);
170
+ } else {
171
+ console.error('New oobCode not found in response');
172
+ setIsSubmitting(false);
173
+ }
174
+ } else {
175
+ console.error('Unexpected response format', response);
176
+ setIsSubmitting(false);
177
+ }
142
178
  return _context2.abrupt("return", response);
143
- case 7:
144
- _context2.prev = 7;
179
+ case 9:
180
+ _context2.prev = 9;
145
181
  _context2.t0 = _context2["catch"](0);
146
182
  console.error('There was an error while resending the activation email.', _context2.t0);
147
- case 10:
183
+ setIsSubmitting(false);
184
+ formikActions.setSubmitting(false);
185
+ case 14:
148
186
  case "end":
149
187
  return _context2.stop();
150
188
  }
151
- }, _callee2, null, [[0, 7]]);
189
+ }, _callee2, null, [[0, 9]]);
152
190
  }));
153
- return function handleResendActivationMail(_x) {
191
+ return function handleResendActivationMail(_x, _x2) {
154
192
  return _ref3.apply(this, arguments);
155
193
  };
156
194
  }();
@@ -175,8 +213,8 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
175
213
  email: ''
176
214
  },
177
215
  validationSchema: emailValidationSchema,
178
- onSubmit: function onSubmit(values) {
179
- handleResendActivationMail(values);
216
+ onSubmit: function onSubmit(values, formikActions) {
217
+ handleResendActivationMail(values, formikActions);
180
218
  }
181
219
  }, function (_ref4) {
182
220
  var values = _ref4.values,
@@ -184,7 +222,8 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
184
222
  touched = _ref4.touched,
185
223
  handleBlur = _ref4.handleBlur,
186
224
  setFieldValue = _ref4.setFieldValue,
187
- setFieldTouched = _ref4.setFieldTouched;
225
+ setFieldTouched = _ref4.setFieldTouched,
226
+ isSubmitting = _ref4.isSubmitting;
188
227
  var onChangeWithTouch = function onChangeWithTouch(e) {
189
228
  var field = e.target;
190
229
  setFieldValue(field.name, field.value, false);
@@ -210,8 +249,9 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
210
249
  noPaddingHorizontal: true
211
250
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
212
251
  type: "submit",
213
- fluid: true
214
- }, isActionLoading === 'resetPassword' ? 'Sending' : 'Resend link')), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
252
+ fluid: true,
253
+ disabled: isSubmitting || isActionLoading === 'resetPassword'
254
+ }, isSubmitting || isActionLoading === 'resetPassword' ? 'Sending' : 'Resend link')), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
215
255
  paddingVeticalHalf: true,
216
256
  noPaddingHorizontal: true
217
257
  }, /*#__PURE__*/_react.default.createElement(_Form.FormError, {
@@ -227,14 +267,32 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
227
267
  part: 16
228
268
  }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("p", null, "Verifying your reset link..."))))));
229
269
  };
270
+ var renderSuccessNotification = function renderSuccessNotification() {
271
+ return /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
272
+ isOpen: true,
273
+ onClose: onModalClose
274
+ }, /*#__PURE__*/_react.default.createElement(_Grid.Row, null, /*#__PURE__*/_react.default.createElement(_Grid.Column, {
275
+ part: 16
276
+ }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("h3", null, "NEW LINK GENERATED"), /*#__PURE__*/_react.default.createElement("p", null, "Your new activation link has been processed successfully. You can now reset your password."))))));
277
+ };
230
278
  (0, _react.useEffect)(function () {
231
279
  console.log('Component mounted, checking token');
232
280
  checkTokenExpiration();
233
281
  }, []);
282
+
283
+ // show the success message briefly then reset to show the password form
284
+ (0, _react.useEffect)(function () {
285
+ if (activationSuccess) {
286
+ setTimeout(function () {
287
+ setActivationSuccess(false);
288
+ }, 2000); // Show success message for 2 seconds
289
+ }
290
+ }, [activationSuccess]);
234
291
  console.log('Render state:', {
235
292
  isTokenExpired: isTokenExpired,
236
293
  isCheckingToken: isCheckingToken,
237
- isModalOpen: isModalOpen
294
+ isModalOpen: isModalOpen,
295
+ activationSuccess: activationSuccess
238
296
  });
239
297
  if (!isModalOpen) {
240
298
  return null;
@@ -242,6 +300,9 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
242
300
  if (isCheckingToken) {
243
301
  return renderLoadingContent();
244
302
  }
303
+ if (activationSuccess) {
304
+ return renderSuccessNotification();
305
+ }
245
306
  if (isTokenExpired) {
246
307
  return renderExpiredTokenContent();
247
308
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stokr/components-library",
3
- "version": "2.3.41-beta.10",
3
+ "version": "2.3.41-beta.11",
4
4
  "description": "STOKR - Components Library",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",