From 1a5be27a1770878176ecf4333336308e1ef3d710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Wed, 4 Feb 2026 00:52:50 +0100 Subject: [PATCH] Redesign ServiceCard: card body is informational, links in footer The card body no longer wraps in an tag. Instead, the footer has explicit icon buttons: external-link for the web URL, settings gear for Coolify management, with a divider before start/stop/restart controls. Co-Authored-By: Claude Opus 4.5 --- src/components/ServiceCard.tsx | 132 ++++++++++++++++++--------------- 1 file changed, 74 insertions(+), 58 deletions(-) diff --git a/src/components/ServiceCard.tsx b/src/components/ServiceCard.tsx index bfdfb1f..82681ac 100644 --- a/src/components/ServiceCard.tsx +++ b/src/components/ServiceCard.tsx @@ -101,68 +101,50 @@ export function ServiceCard({ service, status }: ServiceCardProps) { return (
- {/* Top row: badges + links */} + {/* Top row: badge */}
{resourceBadge && ( {resourceBadge} )} - {discovered && ( - - - +
+ + {/* Service info (non-clickable) */} +
+ +
+ +

+ {service.name} +

+ {service.description && ( +

+ {service.description} +

+ )} + +
+ {fqdnLabel && ( + + {fqdnLabel} + + )} + {service.port > 0 && ( + + :{service.port} + )}
- {/* Clickable area for opening service URL */} - -
- -
- -

- {service.name} -

- {service.description && ( -

- {service.description} -

- )} - -
- {fqdnLabel && ( - - {fqdnLabel} - - )} - {service.port > 0 && ( - - :{service.port} - - )} -
-
- - {/* Controls footer */} - {discovered && ( -
- {/* Status pill */} + {/* Footer: status + links + controls */} +
+ {/* Left: status pill */} + {discovered ? ( {loading ? 'Processing...' : statusLabels[status]} + ) : ( + + )} - {/* Action buttons */} - {!loading && ( -
+ {/* Right: links + action buttons */} +
+ {/* Open website */} + + + + + {/* Manage in Coolify */} + {discovered && ( + + + + )} + + {/* Divider between links and controls */} + {discovered && !loading && (status === 'running' || isStopped) && ( + + )} + + {/* Control buttons */} + {discovered && !loading && ( + <> {isStopped ? ( ) : null} -
+ )}
- )} +
); }