import { CircleUser } from "lucide-react"; import StatusCircle from "~/components/StatusCircle"; import cn from "~/utils/cn"; import type { UnlinkedHeadscaleUser } from "../overview"; interface HeadscaleUserRowProps { user: UnlinkedHeadscaleUser; } export default function HeadscaleUserRow({ user }: HeadscaleUserRowProps) { 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.profilePicUrl ? ( {user.name ) : ( )}

{user.name || user.displayName}

{user.email &&

{user.email}

}

{new Date(user.createdAt).toLocaleDateString()}

{user.machines.length > 0 ? (

{isOnline ? "Connected" : new Date(lastSeen).toLocaleString()}

) : (

No machines

)} {/* Unlinked users only get basic Headscale operations (rename, delete) */} ); }