diff --git a/packages/manager/.changeset/pr-13399-fixed-1771414399036.md b/packages/manager/.changeset/pr-13399-fixed-1771414399036.md new file mode 100644 index 00000000000..9288b7e90f7 --- /dev/null +++ b/packages/manager/.changeset/pr-13399-fixed-1771414399036.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Fixed +--- + +IAM Delegation: incorrect landing page after account switch, wrong top menu username, pagination disappears in the User Delegations table ([#13399](https://github.com/linode/manager/pull/13399)) diff --git a/packages/manager/src/features/Account/SwitchAccountDrawer.tsx b/packages/manager/src/features/Account/SwitchAccountDrawer.tsx index f6b63918268..728023b9260 100644 --- a/packages/manager/src/features/Account/SwitchAccountDrawer.tsx +++ b/packages/manager/src/features/Account/SwitchAccountDrawer.tsx @@ -159,7 +159,7 @@ export const SwitchAccountDrawer = (props: Props) => { userType: isProxyUserType ? 'proxy' : 'delegate', }); onClose(event); - location.reload(); + location.replace('/linodes'); } catch { // Error is handled by createTokenError. } diff --git a/packages/manager/src/features/IAM/Users/UserDelegations/UserDelegationsTable.tsx b/packages/manager/src/features/IAM/Users/UserDelegations/UserDelegationsTable.tsx index 7448aa5aba8..8716aa4bdb8 100644 --- a/packages/manager/src/features/IAM/Users/UserDelegations/UserDelegationsTable.tsx +++ b/packages/manager/src/features/IAM/Users/UserDelegations/UserDelegationsTable.tsx @@ -11,6 +11,7 @@ import * as React from 'react'; import { DebouncedSearchTextField } from 'src/components/DebouncedSearchTextField'; import { PaginationFooter } from 'src/components/PaginationFooter/PaginationFooter'; +import { MIN_PAGE_SIZE } from 'src/components/PaginationFooter/PaginationFooter.constants'; import { Table } from 'src/components/Table'; import { TableBody } from 'src/components/TableBody'; import { TableCell } from 'src/components/TableCell'; @@ -25,11 +26,13 @@ import { usePaginationV2 } from 'src/hooks/usePaginationV2'; import type { Theme } from '@mui/material'; +const USER_DELEGATION_ROUTE = '/iam/users/$username/delegations'; + export const UserDelegationsTable = () => { const { username } = useParams({ from: '/iam/users/$username' }); const { isIAMDelegationEnabled } = useIsIAMDelegationEnabled(); const { company } = useSearch({ - from: '/iam/users/$username/delegations', + from: USER_DELEGATION_ROUTE, }); const navigate = useNavigate(); @@ -39,13 +42,13 @@ export const UserDelegationsTable = () => { order: 'asc', orderBy: 'company', }, - from: '/iam/users/$username/delegations', + from: USER_DELEGATION_ROUTE, }, preferenceKey: 'user-delegations', }); const pagination = usePaginationV2({ - currentRoute: '/iam/users/$username/delegations', + currentRoute: USER_DELEGATION_ROUTE, preferenceKey: 'user-delegations', initialPage: 1, searchParams: (prev) => ({ @@ -79,7 +82,7 @@ export const UserDelegationsTable = () => { const handleSearch = (value: string) => { pagination.handlePageChange(1); navigate({ - to: '/iam/users/$username/delegations', + to: USER_DELEGATION_ROUTE, params: { username }, search: { company: value || undefined }, }); @@ -134,7 +137,7 @@ export const UserDelegationsTable = () => { {childAccount.company} ))} - {(childAccounts?.results ?? 0) > pagination.pageSize && ( + {(childAccounts?.results ?? 0) > MIN_PAGE_SIZE && ( { ); -}; \ No newline at end of file +};