From de2c81b5dabf2e4c734fc2f745d8b948aa50e19e Mon Sep 17 00:00:00 2001 From: Dmytro Melnyshyn Date: Fri, 26 Dec 2025 18:47:53 +0200 Subject: [PATCH] UIU-3499: Handle an undefined of assignedRoleIds in UserRolesModal. Clear update cache after roles update to avoid displaying incorrect data. --- .../EditUserRoles/EditUserRoles.js | 2 +- .../UserRolesModal/UserRolesModal.js | 6 ++--- .../UserRolesModal/UserRolesModal.test.js | 19 +++++++++++++++ src/components/Wrappers/withUserRoles.js | 23 +++++++++++++++---- src/components/Wrappers/withUserRoles.test.js | 3 +-- src/constants.js | 2 ++ .../useUserAffiliationRoles.js | 3 ++- 7 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/components/EditSections/EditUserRoles/EditUserRoles.js b/src/components/EditSections/EditUserRoles/EditUserRoles.js index 6cadd8f0c..d517e50b8 100644 --- a/src/components/EditSections/EditUserRoles/EditUserRoles.js +++ b/src/components/EditSections/EditUserRoles/EditUserRoles.js @@ -157,7 +157,7 @@ function EditUserRoles({ accordionId, form:{ change }, user, setAssignedRoleIds, } id={accordionId} - displayWhenClosed={{assignedRoleIds[tenantId]?.length}} + displayWhenClosed={{assignedRoleIds[tenantId]?.length || 0}} > diff --git a/src/components/EditSections/EditUserRoles/components/UserRolesModal/UserRolesModal.js b/src/components/EditSections/EditUserRoles/components/UserRolesModal/UserRolesModal.js index da0bbf6ca..3b4a4a339 100644 --- a/src/components/EditSections/EditUserRoles/components/UserRolesModal/UserRolesModal.js +++ b/src/components/EditSections/EditUserRoles/components/UserRolesModal/UserRolesModal.js @@ -49,7 +49,7 @@ export default function UserRolesModal({ isOpen, if (assignedRoleIds[tenantId]?.includes(id)) { setAssignedRoleIds({ ...assignedRoleIds, [tenantId]: assignedRoleIds[tenantId].filter(role => role !== id) }); } else { - setAssignedRoleIds({ ...assignedRoleIds, [tenantId]: assignedRoleIds[tenantId] ? assignedRoleIds[tenantId].concat(id) : [id] }); + setAssignedRoleIds({ ...assignedRoleIds, [tenantId]: (assignedRoleIds[tenantId] || []).concat(id) }); } }; @@ -72,7 +72,7 @@ export default function UserRolesModal({ isOpen, }; const handleSaveClick = () => { - const sortedAlphabetically = assignedRoleIds[tenantId] + const sortedAlphabetically = (assignedRoleIds[tenantId] || []) .map(id => { const foundRole = allRolesMapStructure.get(id); return { name: foundRole?.name, id: foundRole?.id }; @@ -106,7 +106,7 @@ export default function UserRolesModal({ isOpen,