From 826e82b1c9f13dd26e8d9e69f25ed2a02badc5a1 Mon Sep 17 00:00:00 2001 From: Alex Carpenter Date: Thu, 29 Jan 2026 14:14:39 -0500 Subject: [PATCH 1/3] fix(ui): Right align table action cells --- .../ui/src/components/APIKeys/ApiKeysTable.tsx | 4 ++-- .../OrganizationProfile/ActiveMembersList.tsx | 2 +- .../OrganizationProfile/InvitedMembersList.tsx | 2 +- .../OrganizationProfile/MemberListTable.tsx | 18 +++++++++++------- .../OrganizationProfile/RequestToJoinList.tsx | 2 +- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/ui/src/components/APIKeys/ApiKeysTable.tsx b/packages/ui/src/components/APIKeys/ApiKeysTable.tsx index 14cf911c2c3..819f65ecdc0 100644 --- a/packages/ui/src/components/APIKeys/ApiKeysTable.tsx +++ b/packages/ui/src/components/APIKeys/ApiKeysTable.tsx @@ -42,7 +42,7 @@ export const APIKeysTable = ({ Name Last used - {canManageAPIKeys && Actions} + {canManageAPIKeys && Actions} @@ -98,7 +98,7 @@ export const APIKeysTable = ({ {canManageAPIKeys && ( - + - + - + { - {headers.map((h, index) => ( - diff --git a/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx b/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx index 331b636d3f1..7e1cd06b51a 100644 --- a/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx +++ b/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx @@ -97,7 +97,7 @@ const RequestRow = withCardStateProvider( - From e7d30d18b2f490098e23d411cfcb4a8ab3d2298e Mon Sep 17 00:00:00 2001 From: Alex Carpenter Date: Thu, 29 Jan 2026 14:20:30 -0500 Subject: [PATCH 2/3] update to object --- .../OrganizationProfile/ActiveMembersList.tsx | 11 +++++--- .../InvitedMembersList.tsx | 11 +++++--- .../OrganizationProfile/MemberListTable.tsx | 26 ++++++++++--------- .../OrganizationProfile/RequestToJoinList.tsx | 9 ++++--- .../PaymentAttempts/PaymentAttemptsList.tsx | 6 ++--- .../components/Statements/StatementsList.tsx | 4 +-- packages/ui/src/elements/DataTable.tsx | 14 +++++++--- 7 files changed, 50 insertions(+), 31 deletions(-) diff --git a/packages/ui/src/components/OrganizationProfile/ActiveMembersList.tsx b/packages/ui/src/components/OrganizationProfile/ActiveMembersList.tsx index fd4e760d59e..cfb28a0fa9f 100644 --- a/packages/ui/src/components/OrganizationProfile/ActiveMembersList.tsx +++ b/packages/ui/src/components/OrganizationProfile/ActiveMembersList.tsx @@ -49,10 +49,13 @@ export const ActiveMembersList = ({ memberships, pageSize }: ActiveMembersListPr isLoading={(memberships?.isLoading && !memberships?.data.length) || loadingRoles} emptyStateLocalizationKey={localizationKeys('organizationProfile.membersPage.detailsTitle__emptyRow')} headers={[ - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__joined'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__role'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user') }, + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__joined') }, + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__role') }, + { + key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + align: 'right', + }, ]} rows={(memberships?.data || []).map(m => ( { isLoading={invitations?.isLoading || loadingRoles} emptyStateLocalizationKey={localizationKeys('organizationProfile.membersPage.invitationsTab.table__emptyRow')} headers={[ - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user'), - localizationKeys('organizationProfile.membersPage.invitedMembersTab.tableHeader__invited'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__role'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user') }, + { key: localizationKeys('organizationProfile.membersPage.invitedMembersTab.tableHeader__invited') }, + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__role') }, + { + key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + align: 'right', + }, ]} rows={(invitations?.data || []).map(i => ( {
- ))} + {headers.map((h, index) => { + const isActionsHeader = h?.key?.includes('tableHeader__actions'); + return ( + + ); + })}
+
- {headers.map((h, index) => { - const isActionsHeader = h?.key?.includes('tableHeader__actions'); - return ( - diff --git a/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx b/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx index 7e1cd06b51a..e17f08f3980 100644 --- a/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx +++ b/packages/ui/src/components/OrganizationProfile/RequestToJoinList.tsx @@ -33,9 +33,12 @@ export const RequestToJoinList = () => { isLoading={membershipRequests?.isLoading} emptyStateLocalizationKey={localizationKeys('organizationProfile.membersPage.requestsTab.table__emptyRow')} headers={[ - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user'), - localizationKeys('organizationProfile.membersPage.requestsTab.tableHeader__requested'), - localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + { key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__user') }, + { key: localizationKeys('organizationProfile.membersPage.requestsTab.tableHeader__requested') }, + { + key: localizationKeys('organizationProfile.membersPage.activeMembersTab.tableHeader__actions'), + align: 'right', + }, ]} rows={(membershipRequests?.data || []).map(request => ( { isLoading={isLoading} emptyStateLocalizationKey={localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.empty`)} headers={[ - localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__date`), - localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__amount`), - localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__status`), + { key: localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__date`) }, + { key: localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__amount`) }, + { key: localizationKeys(`${localizationRoot}.billingPage.paymentHistorySection.tableHeader__status`) }, ]} rows={paymentAttempts.map(i => ( { isLoading={isLoading} emptyStateLocalizationKey={localizationKeys(`${localizationRoot}.billingPage.statementsSection.empty`)} headers={[ - localizationKeys(`${localizationRoot}.billingPage.statementsSection.tableHeader__date`), - localizationKeys(`${localizationRoot}.billingPage.statementsSection.tableHeader__amount`), + { key: localizationKeys(`${localizationRoot}.billingPage.statementsSection.tableHeader__date`) }, + { key: localizationKeys(`${localizationRoot}.billingPage.statementsSection.tableHeader__amount`) }, ]} rows={statements.map(i => ( { From 7c90884543e0af4eb2712845e878f3927181fdbd Mon Sep 17 00:00:00 2001 From: Alex Carpenter Date: Thu, 29 Jan 2026 14:22:27 -0500 Subject: [PATCH 3/3] add changeset --- .changeset/dry-rice-exist.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dry-rice-exist.md diff --git a/.changeset/dry-rice-exist.md b/.changeset/dry-rice-exist.md new file mode 100644 index 00000000000..ca17b855513 --- /dev/null +++ b/.changeset/dry-rice-exist.md @@ -0,0 +1,5 @@ +--- +'@clerk/ui': patch +--- + +Right align table actions.
- ); - })} + {headers.map((h, index) => ( + + ))}
))}