A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
Svelte
12345678910111213141516171819202122232425262728<script lang="ts"> import { Badge } from '$lib/components/ui/badge'; import { TableCell, TableRow } from '$lib/components/ui/table'; import { getMessages } from '$lib/i18n';
const messages = getMessages(); import { formatTimestamp, onlineStatusTone } from '$lib/presenters'; import type { NodeSummary } from '$lib/server/controller'; interface Props { node: NodeSummary; }
let { node }: Props = $props();</script>
<TableRow class="hover:bg-accent/50"> <TableCell> <a href={`/nodes/${node.nodeId}`} class="font-medium hover:text-primary">{node.displayName}</a> <div class="text-xs text-muted-foreground">{node.nodeId}</div> </TableCell> <TableCell> <Badge variant={onlineStatusTone(node.isOnline)}> {node.isOnline ? $messages.status.online : $messages.status.offline} </Badge> </TableCell> <TableCell class="text-muted-foreground">{formatTimestamp(node.lastHeartbeat)}</TableCell></TableRow>