fix(nav): drop the access-level line from a record-switcher entry

Three lines in a 240 px menu: the name, the access level, the kind of
record. The middle one truncated more often than it read, and it is what
the warning banner states in full once you are inside the record, where it
governs what the page lets you do. Two lines left, and the level stays on
the row as `data-access-level` for the browser journeys.

The switcher's own "Read only" / "Can add entries" strings had no other
reader and leave all six bundles.
This commit is contained in:
Marc-André Bombeck committed 2026-08-08 15:17:05 +02:00
1 parent dc56f70961
commit 95988ee843
8 files changed
+22 -31

No files matched your search

@@ -101,11 +101,15 @@ export function AccountSwitcherMenuItems() {
)
}
>
{/* Two lines, not three. The access level had a line of its
own here and it never fit — a 240 px menu truncated
"Kann verwalten" as often as it showed it, and the entry
still said which kind of record this is on the line below.
The level is what the banner states once you are inside,
where it governs what the page lets you do. It stays on
the row as `data-access-level` for the browser journeys. */}
<div className="flex min-w-0 flex-1 flex-col">
<span className="truncate">{accountLabel(account)}</span>
<span className="text-muted-foreground truncate text-xs">
{accessLabel(presentation.access, t)}
</span>
<span className="text-muted-foreground truncate text-xs">
{recordKindLabel(presentation.recordKind, t)}
</span>
@@ -122,16 +126,6 @@ export function AccountSwitcherMenuItems() {
);
}
function accessLabel(
access: ReturnType<typeof resolveRecordPresentation>["access"],
t: ReturnType<typeof useTranslations>["t"],
): string {
if (access === "manage") return t("recordSharing.row.canManage");
return access === "view-and-add"
? t("recordSharing.switcher.canWrite")
: t("recordSharing.switcher.readOnly");
}
function recordKindLabel(
recordKind: ReturnType<typeof resolveRecordPresentation>["recordKind"],
t: ReturnType<typeof useTranslations>["t"],