import Link from "next/link"; import { UserGroupSelect } from "./user-group-select"; export interface AdminUserRow { id: string; firstName: string | null; discordUsername: string; discordGlobalName: string | null; discordUserId: string; onboardingCompletedAt: Date | null; primaryUsername: string | null; accountCount: number; } export function AdminUserTable({ action, assignmentByUser, emptyMessage, groups, returnTo, users, }: { action: (formData: FormData) => Promise; assignmentByUser: Record; emptyMessage: string; groups: Array<{ id: string; name: string; isDefault: boolean }>; returnTo: string; users: AdminUserRow[]; }) { const defaultGroup = groups.find((group) => group.isDefault); return (
{users.map((user) => ( ))} {!users.length && }
Registered portal users and effective groups
UserDiscordPrimaryAccountsGroupStatus
{user.firstName ?? "Name needed"}
{user.discordGlobalName ?? user.discordUsername}
@{user.discordUsername}
{user.discordUserId}
{user.primaryUsername ?? "—"} {user.accountCount} {defaultGroup ? : Default group missing} {user.onboardingCompletedAt ? "Ready" : "Onboarding"}
{emptyMessage}
); }