Loading scheduler heartbeats...
;
+ }
+
+ if (heartbeatsQuery.error) {
+ return (
+
+ {heartbeatsQuery.error instanceof Error
+ ? heartbeatsQuery.error.message
+ : "Failed to load scheduler heartbeats."}
+
+ );
+ }
+
+ return (
+
+
+
+
+
Scheduler Heartbeats
+
+
+ Agents with a timer heartbeat enabled across all of your companies.
+
+
+
+
+ {activeCount} active
+ {disabledCount} disabled
+ {grouped.length} {grouped.length === 1 ? "company" : "companies"}
+
+
+ {actionError && (
+
+ {actionError}
+
+ )}
+
+ {agents.length === 0 ? (
+
+ ) : (
+
+ {grouped.map((group) => (
+
+
+
+ {group.companyName}
+
+
+ {group.agents.map((agent) => {
+ const saving = toggleMutation.isPending && toggleMutation.variables?.id === agent.id;
+ return (
+
+
+ {agent.schedulerActive ? "On" : "Off"}
+
+
+ {agent.agentName}
+
+
+ {humanize(agent.title ?? agent.role)}
+
+
+ {agent.intervalSec}s
+
+
+ {agent.lastHeartbeatAt
+ ? relativeTime(agent.lastHeartbeatAt)
+ : "never"}
+
+
+
+
+
+
+
+
+ );
+ })}
+
+
+
+ ))}
+
+ )}
+
+ );
+}