From 999a080a29839b79481a9fefb9688a70f4854449 Mon Sep 17 00:00:00 2001 From: Fabian Andres Parra Sanchez Date: Mon, 20 Jul 2026 07:33:59 -0500 Subject: [PATCH] fix(i18n): render translated label inside role SelectValue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Base UI's with no children does not reliably extract text from the selected when the item's children is a function call (e.g. tRoles(r.value)) — the trigger falls back to displaying the raw enum string ('admin', 'agent', 'viewer'). Render the translated label explicitly as children of so the trigger always shows the human-readable role name. Scope: only the two role selectors in Settings (matches this PR's theme). The same pattern affects ~5 other sites (template-manager header format, button type; ai-config provider and handoff target; flows/broadcasts) — those are left as follow-up and tracked in #375. Part of #375 --- src/components/settings/invite-member-dialog.tsx | 2 +- src/components/settings/members-tab.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/settings/invite-member-dialog.tsx b/src/components/settings/invite-member-dialog.tsx index b211491..ca29b70 100644 --- a/src/components/settings/invite-member-dialog.tsx +++ b/src/components/settings/invite-member-dialog.tsx @@ -274,7 +274,7 @@ export function InviteMemberDialog({ onValueChange={(v) => v && setRole(v as InviteRole)} > - + {tRoles(role)} {tRoles('admin')} diff --git a/src/components/settings/members-tab.tsx b/src/components/settings/members-tab.tsx index 6aa296f..8661ae1 100644 --- a/src/components/settings/members-tab.tsx +++ b/src/components/settings/members-tab.tsx @@ -428,7 +428,7 @@ export function MembersTab() { className="w-32 bg-muted border-border text-foreground" disabled={isBusy} > - + {tRoles(member.role)} {EDITABLE_ROLES.map((r) => (