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.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 'Member'; default: return 'Unknown'; } }