udp-react-enterprise-component-library 26.1.0-rc.0 → 26.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"UserProvider.d.ts","sourceRoot":"","sources":["../../../src/utilities/auth/UserProvider.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAczE,QAAA,MAAM,YAAY,mCAwFjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"UserProvider.d.ts","sourceRoot":"","sources":["../../../src/utilities/auth/UserProvider.jsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,QAAA,MAAM,YAAY,mCA2FjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React, { useCallback, useEffect, useState, useMemo } from 'react';
2
+ import { keepPreviousData } from '@tanstack/react-query';
2
3
  import { UserContext, UserDispatchContext } from './internal';
3
4
  import { User } from './user';
4
5
  import { LoadingIndicator } from '../../UI/loading/LoadingIndicator';
@@ -30,6 +31,7 @@ const UserProvider = (props) => {
30
31
  const { data: userInfo, error: userError, isLoading: userInfoLoading } = useApiQuery(ConfigService.securityV2ApiUrl, unityUserUrl, {}, {
31
32
  enabled: !!activeAccount,
32
33
  staleTime: 0,
34
+ placeholderData: keepPreviousData,
33
35
  });
34
36
  const user = useMemo(() => (userInfo ? new User(userInfo) : null), [userInfo]);
35
37
  const isErrorModalOpen = Boolean(userError);
@@ -48,7 +50,9 @@ const UserProvider = (props) => {
48
50
  storeTenant(newTenantId);
49
51
  setActiveTenantId(newTenantId);
50
52
  }, []);
51
- const loadingValue = Boolean(activeAccount) && (userInfoLoading || (!user && !userError));
53
+ // Only block on initial load when switching tenants we keep the previous
54
+ // user rendered (placeholderData) so children don't unmount and flash a loader.
55
+ const loadingValue = Boolean(activeAccount) && !user && !userError && userInfoLoading;
52
56
  const shouldBlockForUser = loadingValue && !isWhiteListed;
53
57
  if (isErrorModalOpen) {
54
58
  return (React.createElement(UdpDialog, { open: true, showHeaderCloseButton: false }, React.createElement(UdpText, { variant: "subtitle2" }, errorMessage ? errorMessage : 'An unexpected error has ocurred.'), React.createElement(UdpButton, { slot: "action", appearance: "primary", onClick: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"UserProvider.js","sourceRoot":"","sources":["../../../src/utilities/auth/UserProvider.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserProvider.js","sourceRoot":"","sources":["../../../src/utilities/auth/UserProvider.jsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { User } from "./user.mjs";
11
11
  import { UdpText } from "../../UI/fluent-web-components/UdpText.mjs";
12
12
  import { c } from "react-compiler-runtime";
13
13
  import React, { useEffect, useState } from "react";
14
+ import { keepPreviousData } from "@tanstack/react-query";
14
15
  import { useAccount } from "@azure/msal-react";
15
16
  //#region src/utilities/auth/UserProvider.jsx
16
17
  const UserProvider = (props) => {
@@ -42,7 +43,8 @@ const UserProvider = (props) => {
42
43
  if ($[3] !== t3) {
43
44
  t4 = {
44
45
  enabled: t3,
45
- staleTime: 0
46
+ staleTime: 0,
47
+ placeholderData: keepPreviousData
46
48
  };
47
49
  $[3] = t3;
48
50
  $[4] = t4;
@@ -87,7 +89,7 @@ const UserProvider = (props) => {
87
89
  $[11] = t8;
88
90
  } else t8 = $[11];
89
91
  const changeTenant = t8;
90
- const shouldBlockForUser = Boolean(activeAccount) && (userInfoLoading || !user && !userError) && !isWhiteListed;
92
+ const shouldBlockForUser = Boolean(activeAccount) && !user && !userError && userInfoLoading && !isWhiteListed;
91
93
  if (isErrorModalOpen) {
92
94
  const t9 = errorMessage ? errorMessage : "An unexpected error has ocurred.";
93
95
  let t10;
@@ -1 +1 @@
1
- {"version":3,"file":"UserProvider.mjs","names":["React","useCallback","useEffect","useState","useMemo","UserContext","UserDispatchContext","User","LoadingIndicator","useAccount","storeTenant","getStoredTenant","useApiQuery","TenantProvider","ConfigService","getSignInAuthProvider","UdpDialog","UdpText","UdpButton","UserProvider","props","$","_c","children","isWhiteListed","doNotWaitForTenant","t0","unityTenantId","undefined","activeAccount","t1","params","URLSearchParams","window","location","search","urlTenant","get","storedTenant","activeTenantId","setActiveTenantId","unityUserUrl","encodeURIComponent","t2","Symbol","for","t3","t4","enabled","staleTime","data","userInfo","error","userError","isLoading","userInfoLoading","securityV2ApiUrl","t5","user","isErrorModalOpen","Boolean","errorMessage","t6","t7","userId","sessionStorage","setItem","currentTenantId","t8","newTenantId","changeTenant","loadingValue","shouldBlockForUser","t9","t10","t11","_temp","t12","logoutRedirect"],"sources":["../../../src/utilities/auth/UserProvider.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { UserContext, UserDispatchContext } from './internal';\nimport { User } from './user';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { useAccount } from '@azure/msal-react';\nimport { storeTenant, getStoredTenant } from '../storage/UnitySessionStorage';\nimport { useApiQuery } from '../useApiQuery';\nimport { TenantProvider } from '../tenant/TenantProvider';\nimport { ConfigService } from '../../configService';\nimport { getSignInAuthProvider } from './signInAuthProvider';\nimport { UdpDialog } from '../../UI/fluent-web-components/UdpDialog';\nimport { UdpText } from '../../UI/fluent-web-components/UdpText';\nimport { UdpButton } from '../../UI/fluent-web-components/UdpButton';\n\nconst UserProvider = (props) => {\n const {\n children,\n isWhiteListed,\n doNotWaitForTenant = false,\n unityTenantId\n } = props;\n\n const activeAccount = useAccount();\n\n const [activeTenantId, setActiveTenantId] = useState(() => {\n const params = new URLSearchParams(window.location.search);\n const urlTenant = params.get('tenantId');\n if (urlTenant) return urlTenant;\n\n const storedTenant = getStoredTenant();\n if (storedTenant) return storedTenant;\n\n return unityTenantId || null;\n });\n\n const unityUserUrl = activeTenantId\n ? `user/unityuser?tenantId=${encodeURIComponent(activeTenantId)}`\n : 'user/unityuser';\n\n const { data: userInfo, error: userError, isLoading: userInfoLoading } = useApiQuery(\n ConfigService.securityV2ApiUrl,\n unityUserUrl,\n {},\n {\n enabled: !!activeAccount,\n staleTime: 0,\n }\n );\n\n const user = useMemo(() => (userInfo ? new User(userInfo) : null), [userInfo]);\n\n const isErrorModalOpen = Boolean(userError);\n const errorMessage = userError ? 'Unable to get user details. Please try again.' : '';\n\n useEffect(() => {\n if (user?.userId) sessionStorage.setItem('user-id', user.userId);\n\n if (user?.currentTenantId && !activeTenantId) {\n storeTenant(user.currentTenantId);\n setActiveTenantId(user.currentTenantId);\n }\n }, [user, activeTenantId]);\n\n const changeTenant = useCallback((newTenantId) => {\n if (!newTenantId) return;\n storeTenant(newTenantId);\n setActiveTenantId(newTenantId);\n }, []);\n\n const loadingValue = Boolean(activeAccount) && (userInfoLoading || (!user && !userError));\n const shouldBlockForUser = loadingValue && !isWhiteListed;\n\n if (isErrorModalOpen) {\n return (\n <UdpDialog open showHeaderCloseButton={false}>\n <UdpText variant='subtitle2'>\n {errorMessage ? errorMessage : 'An unexpected error has ocurred.'}\n </UdpText>\n <UdpButton\n slot='action'\n appearance='primary'\n onClick={() => {\n getSignInAuthProvider().logoutRedirect();\n }}\n >\n Logout\n </UdpButton>\n </UdpDialog>\n );\n }\n\n if (!doNotWaitForTenant && shouldBlockForUser) {\n return <LoadingIndicator />;\n }\n\n return (\n <UserContext.Provider value={user}>\n <UserDispatchContext.Provider value={{ changeTenant }}>\n <TenantProvider>{children}</TenantProvider>\n </UserDispatchContext.Provider>\n </UserContext.Provider>\n );\n};\n\nexport default UserProvider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"UserProvider.mjs","names":["React","useCallback","useEffect","useState","useMemo","keepPreviousData","UserContext","UserDispatchContext","User","LoadingIndicator","useAccount","storeTenant","getStoredTenant","useApiQuery","TenantProvider","ConfigService","getSignInAuthProvider","UdpDialog","UdpText","UdpButton","UserProvider","props","$","_c","children","isWhiteListed","doNotWaitForTenant","t0","unityTenantId","undefined","activeAccount","t1","params","URLSearchParams","window","location","search","urlTenant","get","storedTenant","activeTenantId","setActiveTenantId","unityUserUrl","encodeURIComponent","t2","Symbol","for","t3","t4","enabled","staleTime","placeholderData","data","userInfo","error","userError","isLoading","userInfoLoading","securityV2ApiUrl","t5","user","isErrorModalOpen","Boolean","errorMessage","t6","t7","userId","sessionStorage","setItem","currentTenantId","t8","newTenantId","changeTenant","loadingValue","shouldBlockForUser","t9","t10","t11","_temp","t12","logoutRedirect"],"sources":["../../../src/utilities/auth/UserProvider.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { keepPreviousData } from '@tanstack/react-query';\nimport { UserContext, UserDispatchContext } from './internal';\nimport { User } from './user';\nimport { LoadingIndicator } from '../../UI/loading/LoadingIndicator';\nimport { useAccount } from '@azure/msal-react';\nimport { storeTenant, getStoredTenant } from '../storage/UnitySessionStorage';\nimport { useApiQuery } from '../useApiQuery';\nimport { TenantProvider } from '../tenant/TenantProvider';\nimport { ConfigService } from '../../configService';\nimport { getSignInAuthProvider } from './signInAuthProvider';\nimport { UdpDialog } from '../../UI/fluent-web-components/UdpDialog';\nimport { UdpText } from '../../UI/fluent-web-components/UdpText';\nimport { UdpButton } from '../../UI/fluent-web-components/UdpButton';\n\nconst UserProvider = (props) => {\n const {\n children,\n isWhiteListed,\n doNotWaitForTenant = false,\n unityTenantId\n } = props;\n\n const activeAccount = useAccount();\n\n const [activeTenantId, setActiveTenantId] = useState(() => {\n const params = new URLSearchParams(window.location.search);\n const urlTenant = params.get('tenantId');\n if (urlTenant) return urlTenant;\n\n const storedTenant = getStoredTenant();\n if (storedTenant) return storedTenant;\n\n return unityTenantId || null;\n });\n\n const unityUserUrl = activeTenantId\n ? `user/unityuser?tenantId=${encodeURIComponent(activeTenantId)}`\n : 'user/unityuser';\n\n const { data: userInfo, error: userError, isLoading: userInfoLoading } = useApiQuery(\n ConfigService.securityV2ApiUrl,\n unityUserUrl,\n {},\n {\n enabled: !!activeAccount,\n staleTime: 0,\n placeholderData: keepPreviousData,\n }\n );\n\n const user = useMemo(() => (userInfo ? new User(userInfo) : null), [userInfo]);\n\n const isErrorModalOpen = Boolean(userError);\n const errorMessage = userError ? 'Unable to get user details. Please try again.' : '';\n\n useEffect(() => {\n if (user?.userId) sessionStorage.setItem('user-id', user.userId);\n\n if (user?.currentTenantId && !activeTenantId) {\n storeTenant(user.currentTenantId);\n setActiveTenantId(user.currentTenantId);\n }\n }, [user, activeTenantId]);\n\n const changeTenant = useCallback((newTenantId) => {\n if (!newTenantId) return;\n storeTenant(newTenantId);\n setActiveTenantId(newTenantId);\n }, []);\n\n // Only block on initial load — when switching tenants we keep the previous\n // user rendered (placeholderData) so children don't unmount and flash a loader.\n const loadingValue = Boolean(activeAccount) && !user && !userError && userInfoLoading;\n const shouldBlockForUser = loadingValue && !isWhiteListed;\n\n if (isErrorModalOpen) {\n return (\n <UdpDialog open showHeaderCloseButton={false}>\n <UdpText variant='subtitle2'>\n {errorMessage ? errorMessage : 'An unexpected error has ocurred.'}\n </UdpText>\n <UdpButton\n slot='action'\n appearance='primary'\n onClick={() => {\n getSignInAuthProvider().logoutRedirect();\n }}\n >\n Logout\n </UdpButton>\n </UdpDialog>\n );\n }\n\n if (!doNotWaitForTenant && shouldBlockForUser) {\n return <LoadingIndicator />;\n }\n\n return (\n <UserContext.Provider value={user}>\n <UserDispatchContext.Provider value={{ changeTenant }}>\n <TenantProvider>{children}</TenantProvider>\n </UserDispatchContext.Provider>\n </UserContext.Provider>\n );\n};\n\nexport default UserProvider;\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAMoB,gBAAeC,UAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACnB,MAAA,EAAAC,UAAAC,eAAAC,oBAAAC,IAAAC,kBAKIP;CAFF,MAAAK,qBAAAC,OAAAE,KAAAA,IAAA,QAAAF;CAIF,MAAAG,gBAAsBpB,YAAY;CAAC,IAAAqB;AAAA,KAAAT,EAAA,OAAAM,eAAA;AAEkBG,aAAA;GAEnD,MAAAM,YADe,IAAIJ,gBAAgBC,OAAMC,SAASC,OAAQ,CAClCE,IAAK,WAAW;AACxC,OAAID,UAAS,QAASA;GAEtB,MAAAE,eAAqB3B,iBAAiB;AACtC,OAAI2B,aAAY,QAASA;AAAa,UAE/BX,iBAAA;;AACRN,IAAA,KAAAM;AAAAN,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CATD,MAAA,CAAAkB,gBAAAC,qBAA4CtC,SAAS4B,GASnD;CAEF,MAAAW,eAAqBF,iBAAA,2BACUG,mBAAmBH,eAAe,KAD5C;CAEA,IAAAI;AAAA,KAAAtB,EAAA,OAAAuB,OAAAC,IAAA,4BAAA,EAAA;AAKnBF,OAAA,EAAE;AAAAtB,IAAA,KAAAsB;OAAAA,MAAAtB,EAAA;CAES,MAAAyB,KAAA,CAAC,CAACjB;CAAa,IAAAkB;AAAA,KAAA1B,EAAA,OAAAyB,IAAA;AAD1BC,OAAA;GAAAC,SACWF;GAAeG,WACb;GAACC,iBACK9C;GAClB;AAAAiB,IAAA,KAAAyB;AAAAzB,IAAA,KAAA0B;OAAAA,MAAA1B,EAAA;CARH,MAAA,EAAA8B,MAAAC,UAAAC,OAAAC,WAAAC,WAAAC,oBAAyE5C,YACvEE,cAAa2C,kBACbhB,cACAE,IACAI,GAKD;CAAC,IAAAW;AAAA,KAAArC,EAAA,OAAA+B,UAAA;AAE0BM,OAAAN,WAAA,IAAe7C,KAAK6C,SAAgB,GAApC;AAAoC/B,IAAA,KAAA+B;AAAA/B,IAAA,KAAAqC;OAAAA,MAAArC,EAAA;CAAhE,MAAAsC,OAA4BD;CAE5B,MAAAE,mBAAyBC,QAAQP,UAAU;CAC3C,MAAAQ,eAAqBR,YAAA,kDAAA;CAAiE,IAAAS;CAAA,IAAAC;AAAA,KAAA3C,EAAA,OAAAkB,kBAAAlB,EAAA,OAAAsC,MAAA;AAE5EI,aAAA;AACR,OAAIJ,MAAIM,OAAUC,gBAAcC,QAAS,WAAWR,KAAIM,OAAQ;AAEhE,OAAIN,MAAIS,mBAAJ,CAA0B7B,gBAAc;AAC1C7B,gBAAYiD,KAAIS,gBAAiB;AACjC5B,sBAAkBmB,KAAIS,gBAAiB;;;AAExCJ,OAAA,CAACL,MAAMpB,eAAe;AAAAlB,IAAA,KAAAkB;AAAAlB,IAAA,KAAAsC;AAAAtC,IAAA,KAAA0C;AAAA1C,IAAA,MAAA2C;QAAA;AAAAD,OAAA1C,EAAA;AAAA2C,OAAA3C,EAAA;;AAPzBpB,WAAU8D,IAOPC,GAAuB;CAAA,IAAAK;AAAA,KAAAhD,EAAA,QAAAuB,OAAAC,IAAA,4BAAA,EAAA;AAEOwB,QAAAC,gBAAA;AAC/B,OAAI,CAACA,YAAW;AAChB5D,eAAY4D,YAAY;AACxB9B,qBAAkB8B,YAAY;;AAC/BjD,IAAA,MAAAgD;OAAAA,MAAAhD,EAAA;CAJD,MAAAkD,eAAqBF;CASrB,MAAAI,qBADqBZ,QAAQhC,cAAuB,IAA/B,CAA2B8B,QAA3B,CAAoCL,aAApCE,mBACM,CAAiBhC;AAE5C,KAAIoC,kBAAgB;EAIX,MAAAc,KAAAZ,eAAAA,eAAA;EAAgE,IAAAa;AAAA,MAAAtD,EAAA,QAAAqD,IAAA;AADnEC,SAAA,sBAAA,cAAC,SAAD,EAAiB,SAAA,aAEP,EADPD,GACO;AAAArD,KAAA,MAAAqD;AAAArD,KAAA,MAAAsD;QAAAA,OAAAtD,EAAA;EAAA,IAAAuD;AAAA,MAAAvD,EAAA,QAAAuB,OAAAC,IAAA,4BAAA,EAAA;AACV+B,SAAA,sBAAA,cAAC,WAAD;IACO,MAAA;IACM,YAAA;IACF,SAAAC;IAKC,EAFX,SAEW;AAAAxD,KAAA,MAAAuD;QAAAA,OAAAvD,EAAA;EAAA,IAAAyD;AAAA,MAAAzD,EAAA,QAAAsD,KAAA;AAZdG,SAAA,sBAAA,cAAC,WAAD;IAAW,MAAA;IAA4B,uBAAA;IAa3B,EAZVH,KAGAC,IASU;AAAAvD,KAAA,MAAAsD;AAAAtD,KAAA,MAAAyD;QAAAA,OAAAzD,EAAA;AAAA,SAbZyD;;AAiBJ,KAAI,CAACrD,sBAADgD,oBAAyC;EAAA,IAAAC;AAAA,MAAArD,EAAA,QAAAuB,OAAAC,IAAA,4BAAA,EAAA;AACpC6B,QAAA,sBAAA,cAAC,kBAAA,KAAmB;AAAArD,KAAA,MAAAqD;QAAAA,MAAArD,EAAA;AAAA,SAApBqD;;CACR,IAAAA;AAAA,KAAArD,EAAA,QAAAuB,OAAAC,IAAA,4BAAA,EAAA;AAIwC6B,OAAA,EAAAH,cAAgB;AAAAlD,IAAA,MAAAqD;OAAAA,MAAArD,EAAA;CAAA,IAAAsD;AAAA,KAAAtD,EAAA,QAAAE,UAAA;AAArDoD,QAAA,sBAAA,cAAA,oBAAA,UAAA,EAAqC,OAAAD,IAEN,EAD7B,sBAAA,cAAC,gBAAA,MAAgBnD,SACnB,CAA+B;AAAAF,IAAA,MAAAE;AAAAF,IAAA,MAAAsD;OAAAA,OAAAtD,EAAA;CAAA,IAAAuD;AAAA,KAAAvD,EAAA,QAAAsD,OAAAtD,EAAA,QAAAsC,MAAA;AAHjCiB,QAAA,sBAAA,cAAA,YAAA,UAAA,EAA6BjB,OAAAA,MAIN,EAHrBgB,IAGqB;AAAAtD,IAAA,MAAAsD;AAAAtD,IAAA,MAAAsC;AAAAtC,IAAA,MAAAuD;OAAAA,OAAAvD,EAAA;AAAA,QAJvBuD;;AArFiB,SAAAC,QAAA;AAuET9D,wBAAuB,CAAAgE,gBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "udp-react-enterprise-component-library",
3
- "version": "26.1.0-rc.0",
3
+ "version": "26.1.0",
4
4
  "description": "React-based UI component library implementing Fluent UI design for Univerus internal projects",
5
5
  "author": "Univerus",
6
6
  "license": "MIT",
@@ -3675,8 +3675,8 @@
3675
3675
  "@material-vega/material-ui": "^0.2.1",
3676
3676
  "@tanstack/react-query": "^5",
3677
3677
  "@tanstack/react-query-devtools": "^5",
3678
- "udp-react-stencil-component-library": "^26.0.0",
3679
- "udp-stencil-component-library": "^26.1.0-rc.0",
3678
+ "udp-react-stencil-component-library": "^26.0.1",
3679
+ "udp-stencil-component-library": "^26.1.0",
3680
3680
  "axios": "^0.27.2",
3681
3681
  "axios-hooks": "^2.1.0",
3682
3682
  "broadcast-channel": "^4.17.0",