From 94347c1300a9ca1ae6bd15ee6e40adbce630a369 Mon Sep 17 00:00:00 2001 From: Roland Date: Wed, 17 Dec 2025 18:31:40 -0700 Subject: [PATCH] Reworking control service columns to hide less useful columns on mobile. --- app/src/components/admin/ControllerPage.js | 364 +++++++++++++-------- 1 file changed, 235 insertions(+), 129 deletions(-) diff --git a/app/src/components/admin/ControllerPage.js b/app/src/components/admin/ControllerPage.js index 5277fa55..a97f92d2 100644 --- a/app/src/components/admin/ControllerPage.js +++ b/app/src/components/admin/ControllerPage.js @@ -47,7 +47,8 @@ const linesOptions = [ {key: 5000, text: '5000 lines', value: 5000}, ]; -function ServiceRow({service, onAction, dockerized}) { +// Custom hook for service row state and handlers +function useServiceRow(service, onAction) { const [loading, setLoading] = React.useState(false); const [logsOpen, setLogsOpen] = React.useState(false); const [logs, setLogs] = React.useState(''); @@ -145,7 +146,6 @@ function ServiceRow({service, onAction, dockerized}) { }; const isRunning = service.status === 'running'; - const isStopped = service.status === 'stopped'; const statusColor = statusColors[service.status] || 'grey'; // Build view URL if service is viewable @@ -157,21 +157,154 @@ function ServiceRow({service, onAction, dockerized}) { viewUrl = `${protocol}://${host}:${service.port}${path}`; } + return { + loading, logsOpen, setLogsOpen, logs, logsLoading, linesCount, countdown, logsRef, + handleAction, fetchLogs, handleViewLogs, handleLinesChange, handleDownloadLogs, + isRunning, statusColor, viewUrl + }; +} + +// Logs modal component (shared between mobile and desktop) +function ServiceLogsModal({service, logsOpen, setLogsOpen, logs, logsLoading, logsRef, linesCount, countdown, handleViewLogs, handleLinesChange, handleDownloadLogs, fetchLogs}) { + return ( + setLogsOpen(false)} + onOpen={handleViewLogs} + trigger={ + + + ); +} + +// Mobile service row - simplified layout +function MobileServiceRow({service, onAction}) { + const { + loading, logsOpen, setLogsOpen, logs, logsLoading, linesCount, countdown, logsRef, + handleAction, fetchLogs, handleViewLogs, handleLinesChange, handleDownloadLogs, + isRunning, statusColor, viewUrl + } = useServiceRow(service, onAction); + + return ( + + + {service.name} + {service.description &&
{service.description}
} +
+ {service.status} +
+
+ + {isRunning ? ( + - - + {viewUrl && (