(null);
- const active = memberships.find(
- (membership) => membership.tenantId === activeTenantId,
- );
+ const active =
+ activeTenantId === null
+ ? undefined
+ : memberships.find(
+ (membership) => membership.tenantId === activeTenantId,
+ );
+ const activeName =
+ active !== undefined ? membershipDisplay(active).name : null;
function handleCreate(name: string) {
setCreateSubmitting(true);
@@ -136,7 +141,7 @@ export function BenchSwitcher({
return (
setOpen((value) => !value)}
/>
diff --git a/packages/bench-ui/src/styles.css b/packages/bench-ui/src/styles.css
index 1e62641ae..e803baea4 100644
--- a/packages/bench-ui/src/styles.css
+++ b/packages/bench-ui/src/styles.css
@@ -9,23 +9,28 @@
.bench-switcher-trigger {
display: flex;
width: 100%;
+ min-height: 2.75rem;
align-items: center;
gap: 0.625rem;
- border: none;
+ border: 1px solid var(--border);
border-radius: 10px;
- padding: 0.5rem 0.625rem;
- background: transparent;
+ padding: 0.625rem 0.75rem;
+ background: var(--muted);
font: inherit;
- font-size: 0.875rem;
- color: var(--muted-foreground);
+ font-size: 0.9375rem;
+ font-weight: 600;
+ line-height: 1.25;
+ color: var(--foreground);
cursor: pointer;
transition:
color 150ms,
- background-color 150ms;
+ background-color 150ms,
+ border-color 150ms;
}
.bench-switcher-trigger:hover {
- background: var(--muted);
+ background: var(--background);
+ border-color: var(--foreground);
color: var(--foreground);
}
diff --git a/packages/bench-ui/test/components.test.tsx b/packages/bench-ui/test/components.test.tsx
index d917a0ea7..ab0633de3 100644
--- a/packages/bench-ui/test/components.test.tsx
+++ b/packages/bench-ui/test/components.test.tsx
@@ -6,7 +6,11 @@ import { describe, expect, test } from "bun:test";
import { renderToStaticMarkup } from "react-dom/server";
import type { BenchMember, BenchMembership } from "../src/api";
-import { BenchSwitcherList, BenchSwitcherTrigger } from "../src/bench-switcher";
+import {
+ BenchSwitcher,
+ BenchSwitcherList,
+ BenchSwitcherTrigger,
+} from "../src/bench-switcher";
import { canInviteMember } from "../src/invite-member-dialog";
import { canCreateBench, deriveBenchSlug } from "../src/membership";
import { MemberList } from "../src/member-list";
@@ -110,6 +114,23 @@ describe("BenchSwitcherList", () => {
});
});
+describe("BenchSwitcher", () => {
+ test("active trigger name goes through membershipDisplay, never a raw id", () => {
+ const markup = renderToStaticMarkup(
+ ,
+ );
+ expect(markup).toContain("Acme Labs");
+ expect(markup).not.toMatch(RAW_ID_PATTERN);
+ });
+});
+
describe("MemberList", () => {
test("renders a member's name, roles, and status, never a raw id", () => {
const markup = renderToStaticMarkup(