File tree Expand file tree Collapse file tree 3 files changed +31
-9
lines changed
Expand file tree Collapse file tree 3 files changed +31
-9
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @linode/manager " : Fixed
3+ ---
4+
5+ IAM: changing entity/role can cause an empty page ([ #13285 ] ( https://github.com/linode/manager/pull/13285 ) )
Original file line number Diff line number Diff line change @@ -170,8 +170,17 @@ export const AssignedEntitiesTable = ({ username }: Props) => {
170170 setSelectedRole ( role ) ;
171171 } ;
172172
173- const handleRemoveAssignmentDialogClose = ( ) => {
174- setIsRemoveAssignmentDialogOpen ( false ) ;
173+ /**
174+ * Closes the appropriate assignment-related dialog and adjusts pagination if needed.
175+ *
176+ * @param drawerMode Optional mode indicating which dialog should be closed.
177+ */
178+ const handleDialogClose = ( drawerMode ?: DrawerModes ) => {
179+ if ( drawerMode && drawerMode === 'change-role-for-entity' ) {
180+ setIsChangeRoleForEntityDrawerOpen ( false ) ;
181+ } else {
182+ setIsRemoveAssignmentDialogOpen ( false ) ;
183+ }
175184 // If we just deleted the last one on a page, reset to the previous page.
176185 const removedLastOnPage =
177186 filteredAndSortedRoles . length % pagination . pageSize === 1 ;
@@ -364,13 +373,13 @@ export const AssignedEntitiesTable = ({ username }: Props) => {
364373 </ Table >
365374 < ChangeRoleForEntityDrawer
366375 mode = { drawerMode }
367- onClose = { ( ) => setIsChangeRoleForEntityDrawerOpen ( false ) }
376+ onClose = { ( ) => handleDialogClose ( drawerMode ) }
368377 open = { isChangeRoleForEntityDrawerOpen }
369378 role = { selectedRole }
370379 username = { username }
371380 />
372381 < RemoveAssignmentConfirmationDialog
373- onClose = { ( ) => handleRemoveAssignmentDialogClose ( ) }
382+ onClose = { ( ) => handleDialogClose ( ) }
374383 open = { isRemoveAssignmentDialogOpen }
375384 role = { selectedRole }
376385 username = { username }
Original file line number Diff line number Diff line change @@ -166,9 +166,17 @@ export const AssignedRolesTable = () => {
166166 setSelectedRole ( role ) ;
167167 } ;
168168
169- const handleRemoveRoleDialogClose = ( ) => {
170- setIsUnassignRoleDialogOpen ( false ) ;
171-
169+ /**
170+ * Closes the appropriate assignment-related dialog and adjusts pagination if needed.
171+ *
172+ * @param drawerMode Optional mode indicating which dialog should be closed.
173+ */
174+ const handleDialogClose = ( drawerMode ?: DrawerModes ) => {
175+ if ( drawerMode && drawerMode === 'change-role' ) {
176+ setIsChangeRoleDrawerOpen ( false ) ;
177+ } else {
178+ setIsUnassignRoleDialogOpen ( false ) ;
179+ }
172180 // If we just deleted the last one on a page, reset to the previous page.
173181 const removedLastOnPage =
174182 filteredAndSortedRoles . length % pagination . pageSize === 1 ;
@@ -453,12 +461,12 @@ export const AssignedRolesTable = () => {
453461 />
454462 < ChangeRoleDrawer
455463 mode = { drawerMode }
456- onClose = { ( ) => setIsChangeRoleDrawerOpen ( false ) }
464+ onClose = { ( ) => handleDialogClose ( drawerMode ) }
457465 open = { isChangeRoleDrawerOpen }
458466 role = { selectedRole }
459467 />
460468 < UnassignRoleConfirmationDialog
461- onClose = { ( ) => handleRemoveRoleDialogClose ( ) }
469+ onClose = { ( ) => handleDialogClose ( ) }
462470 open = { isUnassignRoleDialogOpen }
463471 role = { selectedRole }
464472 />
You can’t perform that action at this time.
0 commit comments