@nibssplc/cams-sdk-react 1.0.0-rc.51 → 1.0.0-rc.53

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.
package/dist/index.esm.js CHANGED
@@ -2391,24 +2391,22 @@ var MFAGate = function (_a) {
2391
2391
  // loginComponent: LoginComponent = DefaultLoginPage,
2392
2392
  usePassKey = _c === void 0 ? false : _c, _d = _a.useADLogin, useADLogin = _d === void 0 ? false : _d, CredentialsAuthEndpoint = _a.CredentialsAuthEndpoint, PassKeysRegisterProps = _a.PassKeysRegisterProps, MFAEndpoints = _a.MFAEndpoints, requiresMFA = _a.requiresMFA, onAuthSuccess = _a.onAuthSuccess, onAuthError = _a.onAuthError;
2393
2393
  var context = useCAMSContext();
2394
- var hasCalledOnAuthSuccess = useRef(false);
2394
+ var prevAccessTokenRef = useRef("");
2395
2395
  useEffect(function () {
2396
2396
  var _a;
2397
- if (context.authMode === "MSAL" && context.accessToken && context.idToken && !hasCalledOnAuthSuccess.current) {
2398
- var tokens = {
2399
- accessToken: context.accessToken,
2400
- idToken: context.idToken,
2401
- };
2402
- onAuthSuccess === null || onAuthSuccess === void 0 ? void 0 : onAuthSuccess(tokens);
2403
- (_a = context.onAuthSuccess) === null || _a === void 0 ? void 0 : _a.call(context, tokens);
2404
- hasCalledOnAuthSuccess.current = true;
2405
- }
2406
- }, [context.accessToken, context.idToken, context.authMode, onAuthSuccess, context]);
2407
- useEffect(function () {
2408
- if (!context.accessToken) {
2409
- hasCalledOnAuthSuccess.current = false;
2397
+ if (context.authMode === "MSAL") {
2398
+ var accessToken = "accessToken" in context ? context.accessToken : "";
2399
+ var idToken = "idToken" in context ? context.idToken : "";
2400
+ var requiresMFAState = "requiresMFA" in context ? context.requiresMFA : false;
2401
+ // Only call when tokens just arrived (transition from no token to token) and MFA is required
2402
+ if (accessToken && idToken && requiresMFAState && !prevAccessTokenRef.current) {
2403
+ var tokens = { accessToken: accessToken, idToken: idToken };
2404
+ onAuthSuccess === null || onAuthSuccess === void 0 ? void 0 : onAuthSuccess(tokens);
2405
+ (_a = context.onAuthSuccess) === null || _a === void 0 ? void 0 : _a.call(context, tokens);
2406
+ }
2407
+ prevAccessTokenRef.current = accessToken;
2410
2408
  }
2411
- }, [context.accessToken]);
2409
+ }, [context, onAuthSuccess]);
2412
2410
  var validatedMFAEndpoints = useMemo(function () {
2413
2411
  var parsed = MFAEndpointsSchema.safeParse(MFAEndpoints);
2414
2412
  if (!parsed.success) {
@@ -2429,7 +2427,9 @@ var MFAGate = function (_a) {
2429
2427
  case 0:
2430
2428
  if (context.authMode === "MSAL" && context.error) {
2431
2429
  onAuthError === null || onAuthError === void 0 ? void 0 : onAuthError(context.error);
2432
- (_a = context.onAuthError) === null || _a === void 0 ? void 0 : _a.call(context, context.error);
2430
+ if ("onAuthError" in context) {
2431
+ (_a = context.onAuthError) === null || _a === void 0 ? void 0 : _a.call(context, context.error);
2432
+ }
2433
2433
  }
2434
2434
  return [4 /*yield*/, context.logout()];
2435
2435
  case 1:
@@ -2447,8 +2447,9 @@ var MFAGate = function (_a) {
2447
2447
  if (context.isLoading)
2448
2448
  return fallback;
2449
2449
  if (!context.isAuthenticated) {
2450
- var shouldRequireMFA = requiresMFA !== null && requiresMFA !== void 0 ? requiresMFA : context.requiresMFA;
2451
- if (shouldRequireMFA && context.accessToken) {
2450
+ var shouldRequireMFA = requiresMFA !== null && requiresMFA !== void 0 ? requiresMFA : ("requiresMFA" in context ? context.requiresMFA : false);
2451
+ var accessToken = "accessToken" in context ? context.accessToken : "";
2452
+ if (shouldRequireMFA && accessToken) {
2452
2453
  return (jsxRuntimeExports.jsx(MFAOptions, { MFAEndpoints: validatedMFAEndpoints, usePassKey: usePassKey, onComplete: handleComplete, onAuthFailed: handleAuthFailed }));
2453
2454
  }
2454
2455
  return (jsxRuntimeExports.jsx(DefaultLoginPage, { usePassKey: usePassKey, useADLogin: useADLogin, MFAEndpoints: MFAEndpoints, PassKeysRegisterProps: PassKeysRegisterProps, CredentialsAuthEndpoint: CredentialsAuthEndpoint }));