import { useState } from "react"; import type { NetworkNode } from "../../types"; const ICON_MAP: Record = { router: "\uD83C\uDF10", server: "\uD83D\uDDA5\uFE0F", switch: "\uD83D\uDD00", ap: "\uD83D\uDCE1", pc: "\uD83D\uDCBB", nas: "\uD83D\uDCBE", device: "\uD83D\uDCF1", }; interface NodeCardProps { node: NetworkNode; x: number; y: number; } export function NodeCard({ node, x, y }: NodeCardProps) { const [showPassword, setShowPassword] = useState(false); const statusColor = node.status === "up" ? "bg-success" : node.status === "down" ? "bg-danger" : "bg-warning"; return (
setShowPassword((prev) => !prev)} > {ICON_MAP[node.icon] || "\uD83D\uDCE6"} {node.name} {node.ip} {node.username && ( {node.username} / {showPassword ? node.password : "\u2022\u2022\u2022\u2022"} )} {node.public_url && ( {node.public_url} )}
{node.status === "up" ? "Online" : node.status === "down" ? "Offline" : "Unknown"}
); }