@stokr/components-library 2.3.41-beta.10 → 2.3.41-beta.12
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,18 @@ 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];
|
|
69
|
+
var _useState9 = (0, _react.useState)(false),
|
|
70
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
71
|
+
passwordResetSuccess = _useState10[0],
|
|
72
|
+
setPasswordResetSuccess = _useState10[1];
|
|
61
73
|
var location = (0, _reactRouterDom.useLocation)();
|
|
62
74
|
var initialValues = {
|
|
63
75
|
password: '',
|
|
@@ -75,6 +87,18 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
75
87
|
var emailValidationSchema = Yup.object().shape({
|
|
76
88
|
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
89
|
});
|
|
90
|
+
|
|
91
|
+
// Close modal after successful reset
|
|
92
|
+
(0, _react.useEffect)(function () {
|
|
93
|
+
if (passwordResetSuccess) {
|
|
94
|
+
var timer = setTimeout(function () {
|
|
95
|
+
onModalClose();
|
|
96
|
+
}, 1500);
|
|
97
|
+
return function () {
|
|
98
|
+
return clearTimeout(timer);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}, [passwordResetSuccess, onModalClose]);
|
|
78
102
|
var checkTokenExpiration = /*#__PURE__*/function () {
|
|
79
103
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
80
104
|
var search, query, oobCode, result;
|
|
@@ -129,28 +153,58 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
129
153
|
};
|
|
130
154
|
}();
|
|
131
155
|
var handleResendActivationMail = /*#__PURE__*/function () {
|
|
132
|
-
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values) {
|
|
133
|
-
var response;
|
|
156
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values, formikActions) {
|
|
157
|
+
var response, urlObj, params, newOobCode, currentUrl;
|
|
134
158
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
135
159
|
while (1) switch (_context2.prev = _context2.next) {
|
|
136
160
|
case 0:
|
|
137
161
|
_context2.prev = 0;
|
|
138
|
-
|
|
162
|
+
setIsSubmitting(true);
|
|
163
|
+
_context2.next = 4;
|
|
139
164
|
return _Auth.default.resendActivationEmail(values.email);
|
|
140
|
-
case
|
|
165
|
+
case 4:
|
|
141
166
|
response = _context2.sent;
|
|
167
|
+
// new oobCode is in response URL
|
|
168
|
+
if (response) {
|
|
169
|
+
urlObj = new URL(response);
|
|
170
|
+
params = new URLSearchParams(urlObj.search);
|
|
171
|
+
newOobCode = params.get('oobCode');
|
|
172
|
+
if (newOobCode) {
|
|
173
|
+
// update the URL with the new oobCode without reloading the page
|
|
174
|
+
currentUrl = new URL(window.location.href);
|
|
175
|
+
currentUrl.searchParams.set('oobCode', newOobCode);
|
|
176
|
+
window.history.replaceState({}, '', currentUrl.toString());
|
|
177
|
+
|
|
178
|
+
// reset states to show the password reset form
|
|
179
|
+
setIsTokenExpired(false);
|
|
180
|
+
setActivationSuccess(true);
|
|
181
|
+
|
|
182
|
+
// small delay for UI sakes
|
|
183
|
+
setTimeout(function () {
|
|
184
|
+
setIsSubmitting(false);
|
|
185
|
+
}, 1000);
|
|
186
|
+
} else {
|
|
187
|
+
console.error('New oobCode not found in response');
|
|
188
|
+
setIsSubmitting(false);
|
|
189
|
+
}
|
|
190
|
+
} else {
|
|
191
|
+
console.error('Unexpected response format', response);
|
|
192
|
+
setIsSubmitting(false);
|
|
193
|
+
}
|
|
142
194
|
return _context2.abrupt("return", response);
|
|
143
|
-
case
|
|
144
|
-
_context2.prev =
|
|
195
|
+
case 9:
|
|
196
|
+
_context2.prev = 9;
|
|
145
197
|
_context2.t0 = _context2["catch"](0);
|
|
146
198
|
console.error('There was an error while resending the activation email.', _context2.t0);
|
|
147
|
-
|
|
199
|
+
setIsSubmitting(false);
|
|
200
|
+
formikActions.setSubmitting(false);
|
|
201
|
+
case 14:
|
|
148
202
|
case "end":
|
|
149
203
|
return _context2.stop();
|
|
150
204
|
}
|
|
151
|
-
}, _callee2, null, [[0,
|
|
205
|
+
}, _callee2, null, [[0, 9]]);
|
|
152
206
|
}));
|
|
153
|
-
return function handleResendActivationMail(_x) {
|
|
207
|
+
return function handleResendActivationMail(_x, _x2) {
|
|
154
208
|
return _ref3.apply(this, arguments);
|
|
155
209
|
};
|
|
156
210
|
}();
|
|
@@ -175,8 +229,8 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
175
229
|
email: ''
|
|
176
230
|
},
|
|
177
231
|
validationSchema: emailValidationSchema,
|
|
178
|
-
onSubmit: function onSubmit(values) {
|
|
179
|
-
handleResendActivationMail(values);
|
|
232
|
+
onSubmit: function onSubmit(values, formikActions) {
|
|
233
|
+
handleResendActivationMail(values, formikActions);
|
|
180
234
|
}
|
|
181
235
|
}, function (_ref4) {
|
|
182
236
|
var values = _ref4.values,
|
|
@@ -184,7 +238,8 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
184
238
|
touched = _ref4.touched,
|
|
185
239
|
handleBlur = _ref4.handleBlur,
|
|
186
240
|
setFieldValue = _ref4.setFieldValue,
|
|
187
|
-
setFieldTouched = _ref4.setFieldTouched
|
|
241
|
+
setFieldTouched = _ref4.setFieldTouched,
|
|
242
|
+
isSubmitting = _ref4.isSubmitting;
|
|
188
243
|
var onChangeWithTouch = function onChangeWithTouch(e) {
|
|
189
244
|
var field = e.target;
|
|
190
245
|
setFieldValue(field.name, field.value, false);
|
|
@@ -210,8 +265,9 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
210
265
|
noPaddingHorizontal: true
|
|
211
266
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
212
267
|
type: "submit",
|
|
213
|
-
fluid: true
|
|
214
|
-
|
|
268
|
+
fluid: true,
|
|
269
|
+
disabled: isSubmitting || isActionLoading === 'resetPassword'
|
|
270
|
+
}, isSubmitting || isActionLoading === 'resetPassword' ? 'Sending' : 'Resend link')), /*#__PURE__*/_react.default.createElement(_ComponentWrapper.default, {
|
|
215
271
|
paddingVeticalHalf: true,
|
|
216
272
|
noPaddingHorizontal: true
|
|
217
273
|
}, /*#__PURE__*/_react.default.createElement(_Form.FormError, {
|
|
@@ -227,14 +283,33 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
227
283
|
part: 16
|
|
228
284
|
}, /*#__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
285
|
};
|
|
286
|
+
var renderSuccessNotification = function renderSuccessNotification() {
|
|
287
|
+
return /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
|
|
288
|
+
isOpen: true,
|
|
289
|
+
onClose: onModalClose
|
|
290
|
+
}, /*#__PURE__*/_react.default.createElement(_Grid.Row, null, /*#__PURE__*/_react.default.createElement(_Grid.Column, {
|
|
291
|
+
part: 16
|
|
292
|
+
}, /*#__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."))))));
|
|
293
|
+
};
|
|
230
294
|
(0, _react.useEffect)(function () {
|
|
231
295
|
console.log('Component mounted, checking token');
|
|
232
296
|
checkTokenExpiration();
|
|
233
297
|
}, []);
|
|
298
|
+
|
|
299
|
+
// show the success message briefly then reset to show the password form
|
|
300
|
+
(0, _react.useEffect)(function () {
|
|
301
|
+
if (activationSuccess) {
|
|
302
|
+
setTimeout(function () {
|
|
303
|
+
setActivationSuccess(false);
|
|
304
|
+
}, 2000); // Show success message for 2 seconds
|
|
305
|
+
}
|
|
306
|
+
}, [activationSuccess]);
|
|
234
307
|
console.log('Render state:', {
|
|
235
308
|
isTokenExpired: isTokenExpired,
|
|
236
309
|
isCheckingToken: isCheckingToken,
|
|
237
|
-
isModalOpen: isModalOpen
|
|
310
|
+
isModalOpen: isModalOpen,
|
|
311
|
+
activationSuccess: activationSuccess,
|
|
312
|
+
passwordResetSuccess: passwordResetSuccess
|
|
238
313
|
});
|
|
239
314
|
if (!isModalOpen) {
|
|
240
315
|
return null;
|
|
@@ -242,6 +317,9 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
242
317
|
if (isCheckingToken) {
|
|
243
318
|
return renderLoadingContent();
|
|
244
319
|
}
|
|
320
|
+
if (activationSuccess) {
|
|
321
|
+
return renderSuccessNotification();
|
|
322
|
+
}
|
|
245
323
|
if (isTokenExpired) {
|
|
246
324
|
return renderExpiredTokenContent();
|
|
247
325
|
}
|
|
@@ -260,16 +338,30 @@ var ResetPasswordModal = function ResetPasswordModal(_ref) {
|
|
|
260
338
|
onClick: onModalSwitch
|
|
261
339
|
}, "Log in")))), /*#__PURE__*/_react.default.createElement(_Grid.Column, {
|
|
262
340
|
part: 8
|
|
263
|
-
}, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, /*#__PURE__*/_react.default.createElement(_formik.Formik, {
|
|
341
|
+
}, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, null, passwordResetSuccess ? /*#__PURE__*/_react.default.createElement(_Text.default, null, /*#__PURE__*/_react.default.createElement("h3", null, "SUCCESS!"), /*#__PURE__*/_react.default.createElement("p", null, "Your password has been reset successfully."), /*#__PURE__*/_react.default.createElement("p", null, "Redirecting to login...")) : /*#__PURE__*/_react.default.createElement(_formik.Formik, {
|
|
264
342
|
initialValues: initialValues,
|
|
265
343
|
validationSchema: validationSchema,
|
|
266
344
|
onSubmit: function onSubmit(values) {
|
|
267
345
|
var search = location.search;
|
|
268
346
|
var query = new URLSearchParams(search);
|
|
269
347
|
var oobCode = query.get('oobCode');
|
|
270
|
-
onFormSend(_objectSpread(_objectSpread({}, values), {}, {
|
|
348
|
+
var promise = onFormSend(_objectSpread(_objectSpread({}, values), {}, {
|
|
271
349
|
oobCode: oobCode
|
|
272
350
|
}));
|
|
351
|
+
|
|
352
|
+
// If onFormSend returns a promise, handle it
|
|
353
|
+
if (promise && typeof promise.then === 'function') {
|
|
354
|
+
promise.then(function (response) {
|
|
355
|
+
// Assuming response.success or some equivalent would indicate success
|
|
356
|
+
// Adjust according to your actual API response
|
|
357
|
+
setPasswordResetSuccess(true);
|
|
358
|
+
}).catch(function (err) {
|
|
359
|
+
console.error('Error during password reset:', err);
|
|
360
|
+
});
|
|
361
|
+
} else {
|
|
362
|
+
// If onFormSend doesn't return a promise, assume it was successful
|
|
363
|
+
setPasswordResetSuccess(true);
|
|
364
|
+
}
|
|
273
365
|
}
|
|
274
366
|
}, function (_ref5) {
|
|
275
367
|
var values = _ref5.values,
|