-
- {t.pwa.updated}
- {freshnessLabel(freshness, t)}
-
- {formatDate(data.overview.generatedAt, locale)}
- {age === null ? '' : ` · ${formatDuration(age, t)}`}
-
-
-
- {t.pwa.app}
-
- {!secureContext
- ? t.pwa.secureRequired
- : installed
- ? t.pwa.installed
- : offlineReady
- ? t.pwa.ready
- : t.pwa.app}
-
- {canInstall ? (
-
- ) : (
-
- {!secureContext
- ? t.pwa.secureRequired
- : offlineReady
- ? t.pwa.cached
- : t.pwa.online}
-
- )}
-
-
- {t.metrics.rooms}
-
- {data.overview.rooms.active + data.overview.rooms.waiting}/
- {data.overview.rooms.total}
-
- {t.control.activeRooms}
-
-
- {t.control.queue}
- {queue.pendingTasks}
-
- {queue.pendingMessageRooms} {t.control.pendingRooms}
-
-
-
- {t.metrics.agents}
- {data.overview.services.length}
- {t.panels.heartbeat}
-
-
- {t.metrics.ciWatchers}
- {data.overview.tasks.watchers.active}
-
- {data.overview.tasks.watchers.paused} {t.status.paused}
-
-
-
- );
-}
-
function DashboardErrorCard({
error,
onRetry,
@@ -388,8 +287,7 @@ function App() {
const [taskActionKey, setTaskActionKey] = useState