diff --git a/frontend/src/components/canvas/nodes/BaseNode.tsx b/frontend/src/components/canvas/nodes/BaseNode.tsx index dbd9f77..2a3babd 100644 --- a/frontend/src/components/canvas/nodes/BaseNode.tsx +++ b/frontend/src/components/canvas/nodes/BaseNode.tsx @@ -156,11 +156,37 @@ export function BaseNode({ id, data, selected, icon: typeIcon, width, height }: color: theme.colors.nodeSubtextColor, }} > - {svc.service_name} - - {svc.port} - - + +
+ {/* LEFT: service name */} + + {svc.service_name} + + + {/* RIGHT: path + port */} +
+ {svc.path && ( + + {svc.path} + + )} + + + {svc.port} + + +
+
) diff --git a/frontend/src/components/panels/DetailPanel.tsx b/frontend/src/components/panels/DetailPanel.tsx index 1152112..46dab30 100644 --- a/frontend/src/components/panels/DetailPanel.tsx +++ b/frontend/src/components/panels/DetailPanel.tsx @@ -2,7 +2,7 @@ import { createElement, useState } from 'react' import { X, Edit, Trash2, ExternalLink, Plus, Pencil, Layers, Ungroup, Eye, EyeOff } from 'lucide-react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' -import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui/tooltip' + import { useCanvasStore } from '@/stores/canvasStore' import { NODE_TYPE_LABELS, STATUS_COLORS, type ServiceInfo, type NodeData, type NodeProperty } from '@/types' import { getServiceUrl } from '@/utils/serviceUrl' @@ -662,9 +662,6 @@ const CATEGORY_COLORS: Record = { function ServiceBadge({ svc, host, onEdit, onRemove }: { svc: ServiceInfo; host?: string; onEdit: () => void; onRemove: () => void }) { const url = getServiceUrl(svc, host) const color = CATEGORY_COLORS[svc.category ?? ''] ?? '#8b949e' - - const hasPort = svc.port != null - const portLabel = hasPort ? String(svc.port) : 'host' const pathLabel = svc.path?.trim() ? svc.path.trim() : '' return ( @@ -680,7 +677,7 @@ function ServiceBadge({ svc, host, onEdit, onRemove }: { svc: ServiceInfo; host? href={url} target="_blank" rel="noopener noreferrer" - className="font-medium truncate" + className="font-medium truncate min-w-0 flex-1" style={{ color }} title={svc.service_name} onClick={e => e.stopPropagation()} @@ -689,7 +686,7 @@ function ServiceBadge({ svc, host, onEdit, onRemove }: { svc: ServiceInfo; host? ) : ( @@ -698,27 +695,21 @@ function ServiceBadge({ svc, host, onEdit, onRemove }: { svc: ServiceInfo; host? )} {pathLabel && ( - - - - - {pathLabel} - - - {pathLabel} - - + + {pathLabel} + )}
- - {portLabel}/{svc.protocol} - + {svc.port != null && ( + + {svc.port}/{svc.protocol} + + )} {url ? (