diff --git a/frontend/app/admin/invites/page.tsx b/frontend/app/admin/invites/page.tsx index 311ff72..7ba7a47 100644 --- a/frontend/app/admin/invites/page.tsx +++ b/frontend/app/admin/invites/page.tsx @@ -1,6 +1,7 @@ 'use client' import InviteDeliveryChoice from '../../ui/InviteDeliveryChoice' +import Link from 'next/link' import { useRouter } from 'next/navigation' import { useEffect, useMemo, useState } from 'react' @@ -918,6 +919,14 @@ export default function AdminInviteManagementPage() { return invites }, [inviteView, invites]) + const traceUserIds = useMemo(() => new Map(users.map(user => [user.username.trim().toLowerCase(), user.id])), [users]) + const traceAccountLink = (username: string, className?: string) => { + const id = traceUserIds.get(username.trim().toLowerCase()) + return id != null + ? {username} + : {username} + } + const inviteTraceRows = useMemo(() => { const inviteByCode = new Map() invites.forEach((invite) => { @@ -2276,14 +2285,14 @@ export default function AdminInviteManagementPage() { >
- {row.username} + {traceAccountLink(row.username, 'invite-trace-user')} {row.role} {row.authProvider} {row.isCycle && cycle}

{row.inviterUsername - ? `\u2190 Invited by ${row.inviterUsername}` + ? <>← Invited by {traceAccountLink(row.inviterUsername)} : row.inviteCode ? `\u2190 Invited via code ${row.inviteCode}` : 'Direct/root account'} @@ -2319,7 +2328,7 @@ export default function AdminInviteManagementPage() {