fix: render service icons via function call, not dynamic component

This commit is contained in:
Tomas Dvorak committed 2026-09-21 19:38:41 +02:00
1 parent dbdf6733d1
commit 04c3b99531
1 file changed
+6 -11
@@ -17,16 +17,16 @@ export type GroupNodeData = {
export type ServiceNodeType = Node<ServiceNodeData, 'serviceNode'>;
export type GroupNodeType = Node<GroupNodeData, 'groupNode'>;
function serviceTypeIcon(type: string): typeof Box {
function renderServiceTypeIcon(type: string, size = 18) {
switch (type) {
case 'web':
return Globe;
return <Globe size={size} />;
case 'database':
return Database;
return <Database size={size} />;
case 'worker':
return Terminal;
return <Terminal size={size} />;
default:
return Box;
return <Box size={size} />;
}
}
@@ -56,11 +56,6 @@ function statusLabel(status: string): string {
}
}
function ServiceTypeIcon({ type, size = 18 }: { type: string; size?: number }) {
const Icon = serviceTypeIcon(type);
return <Icon size={size} />;
}
export function ServiceNode({ data }: NodeProps<ServiceNodeType>) {
const { service, selected } = data;
const typeColor = serviceTypeColor(service.type);
@@ -103,7 +98,7 @@ export function ServiceNode({ data }: NodeProps<ServiceNodeType>) {
color: selected ? 'white' : typeColor,
}}
>
<ServiceTypeIcon type={service.type} size={18} />
{renderServiceTypeIcon(service.type, 18)}
</div>
<div className="min-w-0 flex-1 pt-0.5">
<h4 className="font-semibold text-sm text-[var(--text-primary)] truncate tracking-tight">{service.name}</h4>