@nibssplc/cams-sdk-react 1.0.0-rc.80 → 1.0.0-rc.82

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.cjs.js CHANGED
@@ -520,8 +520,6 @@ function useCAMSMSALAuth(options) {
520
520
  mfaConfig: mfaConfig,
521
521
  userConfig: userConfig,
522
522
  });
523
- setAccessToken(response.accessToken);
524
- setIdToken(response.idToken);
525
523
  camsSdk.Logger.info("MSAL User Auth is Completed");
526
524
  // Don't persist as authenticated until MFA is complete
527
525
  if (userConfig.isValid && userConfig.userInfo.email) {
@@ -529,6 +527,8 @@ function useCAMSMSALAuth(options) {
529
527
  storageKey: storageKey,
530
528
  email: userConfig.userInfo.email,
531
529
  });
530
+ setAccessToken(response.accessToken);
531
+ setIdToken(response.idToken);
532
532
  localStorage.setItem(storageKey, JSON.stringify({
533
533
  isAuthenticated: false,
534
534
  requiresMFA: userConfig.userInfo.isMFAEnabled,
@@ -1816,14 +1816,13 @@ var MFAEndpointsSchema = z.object({
1816
1816
  AuthChallengeVerify: z.url("MFA AuthChallengeVerify must be a valid URL"),
1817
1817
  });
1818
1818
  var MFAGate = function (_a) {
1819
- var _b, _c, _d;
1820
- var children = _a.children, _e = _a.fallback, fallback = _e === void 0 ? (jsxRuntime.jsx("div", { className: "h-screen flex items-center justify-center", children: jsxRuntime.jsx(LoadingSpinner, {}) })) : _e,
1819
+ var children = _a.children, _b = _a.fallback, fallback = _b === void 0 ? (jsxRuntime.jsx("div", { className: "h-screen flex items-center justify-center", children: jsxRuntime.jsx(LoadingSpinner, {}) })) : _b,
1821
1820
  // loginComponent: LoginComponent = DefaultLoginPage,
1822
- _f = _a.usePassKey,
1821
+ _c = _a.usePassKey,
1823
1822
  // loginComponent: LoginComponent = DefaultLoginPage,
1824
- usePassKey = _f === void 0 ? false : _f, _g = _a.useADLogin, useADLogin = _g === void 0 ? false : _g, CredentialsAuthEndpoint = _a.CredentialsAuthEndpoint, PassKeysRegisterProps = _a.PassKeysRegisterProps, MFAEndpoints = _a.MFAEndpoints, requiresMFA = _a.requiresMFA, onAuthSuccess = _a.onAuthSuccess, onAuthError = _a.onAuthError;
1823
+ 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;
1825
1824
  var context = useCAMSContext();
1826
- var _h = React.useState("Loading"), authState = _h[0], setAuthState = _h[1];
1825
+ var _e = React.useState("Loading"), authState = _e[0], setAuthState = _e[1];
1827
1826
  var validatedMFAEndpoints = React.useMemo(function () {
1828
1827
  var parsed = MFAEndpointsSchema.safeParse(MFAEndpoints);
1829
1828
  if (!parsed.success) {
@@ -1832,6 +1831,9 @@ var MFAGate = function (_a) {
1832
1831
  }
1833
1832
  return parsed.data;
1834
1833
  }, [MFAEndpoints]);
1834
+ // Extract the specific values we need from context for dependencies
1835
+ var contextRequiresMFA = "requiresMFA" in context ? context.requiresMFA : false;
1836
+ var contextAccessToken = "accessToken" in context ? context.accessToken : "";
1835
1837
  var handleComplete = React.useCallback(function (success) {
1836
1838
  var _a;
1837
1839
  if (success && context.authMode === "MSAL") {
@@ -1867,12 +1869,14 @@ var MFAGate = function (_a) {
1867
1869
  }
1868
1870
  });
1869
1871
  }); }, [context, onAuthError]);
1870
- camsSdk.Logger.debug("User context:", {
1871
- user: context.user,
1872
- profile: (_b = context.user) === null || _b === void 0 ? void 0 : _b.profile,
1873
- email: (_d = (_c = context.user) === null || _c === void 0 ? void 0 : _c.profile) === null || _d === void 0 ? void 0 : _d.email,
1874
- });
1875
1872
  React.useEffect(function () {
1873
+ console.log("Auth evaluation triggered:", {
1874
+ isLoading: context.isLoading,
1875
+ isAuthenticated: context.isAuthenticated,
1876
+ contextRequiresMFA: contextRequiresMFA,
1877
+ contextAccessToken: !!contextAccessToken,
1878
+ requiresMFA: requiresMFA,
1879
+ });
1876
1880
  if (context.isLoading) {
1877
1881
  setAuthState("Loading");
1878
1882
  return;
@@ -1881,26 +1885,44 @@ var MFAGate = function (_a) {
1881
1885
  setAuthState("Unauthenticated");
1882
1886
  return;
1883
1887
  }
1884
- // Small delay to ensure all context updates are processed
1885
- var timer = setTimeout(function () {
1886
- var shouldRequireMFA = requiresMFA !== null && requiresMFA !== void 0 ? requiresMFA : ("requiresMFA" in context ? context.requiresMFA : false);
1887
- var accessToken = "accessToken" in context ? context.accessToken : "";
1888
- console.log(shouldRequireMFA, "Auth State", authState, context);
1889
- if (shouldRequireMFA && accessToken) {
1890
- setAuthState("MFA_Required");
1891
- }
1892
- else {
1893
- setAuthState("Authenticated");
1894
- }
1895
- }, 50);
1896
- return function () { return clearTimeout(timer); };
1888
+ // If authenticated, determine if MFA is required
1889
+ var shouldRequireMFA = requiresMFA !== null && requiresMFA !== void 0 ? requiresMFA : contextRequiresMFA;
1890
+ console.log("MFA decision:", {
1891
+ shouldRequireMFA: shouldRequireMFA,
1892
+ hasAccessToken: !!contextAccessToken,
1893
+ finalState: shouldRequireMFA && contextAccessToken
1894
+ ? "MFA_Required"
1895
+ : "Authenticated",
1896
+ });
1897
+ if (shouldRequireMFA && contextAccessToken) {
1898
+ setAuthState("MFA_Required");
1899
+ }
1900
+ else {
1901
+ setAuthState("Authenticated");
1902
+ }
1897
1903
  }, [
1898
- context.accessToken,
1899
1904
  context.isLoading,
1900
1905
  context.isAuthenticated,
1901
- context.requiresMFA,
1906
+ contextRequiresMFA, // Now this will trigger re-evaluation when requiresMFA changes
1907
+ contextAccessToken, // And this when accessToken changes
1902
1908
  requiresMFA,
1903
- context,
1909
+ ]);
1910
+ // Debug useEffect
1911
+ React.useEffect(function () {
1912
+ console.log("Current authState:", authState);
1913
+ console.log("Context state:", {
1914
+ isLoading: context.isLoading,
1915
+ isAuthenticated: context.isAuthenticated,
1916
+ authMode: context.authMode,
1917
+ requiresMFA: contextRequiresMFA,
1918
+ hasAccessToken: !!contextAccessToken,
1919
+ });
1920
+ }, [
1921
+ authState,
1922
+ context.isLoading,
1923
+ context.isAuthenticated,
1924
+ contextRequiresMFA,
1925
+ contextAccessToken,
1904
1926
  ]);
1905
1927
  if (useADLogin && !CredentialsAuthEndpoint)
1906
1928
  return jsxRuntime.jsx(ErrorFallback, { message: "Invalid AD Login Configuration." });