import { CircleUser } from "lucide-react"; import StatusCircle from "~/components/StatusCircle"; import { Machine, User } from "~/types"; import cn from "~/utils/cn"; import MenuOptions from "./menu"; interface UserRowProps { role: string; user: User & { machines: Machine[] }; } export default function UserRow({ user, role }: UserRowProps) { const isOnline = user.machines.some((machine) => machine.online); const lastSeen = user.machines.reduce( (acc, machine) => Math.max(acc, new Date(machine.lastSeen).getTime()), 0, ); return (
{user.name || user.displayName}
{user.email}
{mapRoleToName(role)}
{new Date(user.createdAt).toLocaleDateString()}
{isOnline ? "Connected" : new Date(lastSeen).toLocaleString()}
Unmanaged
; case "invalid-oidc": returnInvalid
; case "no-role": returnUnregistered
; case "owner": return "Owner"; case "admin": return "Admin"; case "network_admin": return "Network Admin"; case "it_admin": return "IT Admin"; case "auditor": return "Auditor"; case "member": return ( Pending Approval ); default: return "Unknown"; } }