Skip to content

Commit e2a46c3

Browse files
committed
Added user role label mapper
1 parent b4cf5e7 commit e2a46c3

3 files changed

Lines changed: 19 additions & 4 deletions

File tree

src/pages/Administration.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import Card from "../components/Card";
3333
// Legacy modals (inline styles) brought back from old-src for now
3434
import { RegisterUserModal } from "@/components/admin/RegisterUserModal";
3535
import { UserEditorModal } from "@/components/admin/UserEditorModal";
36-
import { GamevaultUser, GamevaultUserRoleEnum } from "../api";
36+
import { GamevaultUser, GamevaultUserRoleEnum, GamevaultUserRoleLabels } from "../api";
3737
import BackupRestoreDialog from "../components/admin/BackupRestoreDialog";
3838
import { Label } from "../components/tailwind/fieldset";
3939

@@ -344,7 +344,9 @@ export default function Administration() {
344344
>
345345
{Object.values(GamevaultUserRoleEnum).map((r) => (
346346
<ListboxOption key={r} value={r}>
347-
<ListboxLabel>{r}</ListboxLabel>
347+
<ListboxLabel>
348+
{GamevaultUserRoleLabels[Number(r)] ?? r}
349+
</ListboxLabel>
348350
</ListboxOption>
349351
))}
350352
</Listbox>

src/pages/Community.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Heading } from "@tw/heading";
66
import { Listbox, ListboxLabel, ListboxOption } from "@tw/listbox";
77
import { useEffect, useMemo, useState } from "react";
88
import { useNavigate } from "react-router";
9-
import { GamevaultUser } from "../api";
9+
import { GamevaultUser, GamevaultUserRoleLabels } from "../api";
1010

1111
export default function Community() {
1212
const { serverUrl, authFetch, user: loggedIn } = useAuth();
@@ -167,7 +167,7 @@ export default function Community() {
167167
</div>
168168
)}
169169
<div className="inline-flex items-center rounded-md border px-2 py-0.5 text-xs border-zinc-300/60 text-zinc-700 dark:border-zinc-700/60 dark:text-zinc-200">
170-
{current?.role}
170+
{current?.role != null ? (GamevaultUserRoleLabels[Number(current.role)] ?? current.role) : ""}
171171
</div>
172172
</div>
173173
</div>

src/utils/roles.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Role label helper (non-generated)
2+
// Maps backend numeric roles to human-readable labels.
3+
export const ROLE_LABELS: Record<number, string> = {
4+
0: "Guest",
5+
1: "User",
6+
2: "Editor",
7+
3: "Admin",
8+
};
9+
10+
export function getRoleLabel(role: number | null | undefined): string {
11+
if (role === null || role === undefined) return "";
12+
return ROLE_LABELS[Number(role)] ?? String(role);
13+
}

0 commit comments

Comments
 (0)