+11
-9
src/App.svelte
+11
-9
src/App.svelte
···
130
130
</script>
131
131
132
132
<main class="w-full mt-10">
133
-
<div class="max-w-4xl mx-auto px-3">
133
+
<div class="max-w-5xl mx-auto px-3">
134
134
135
135
<header class="flex items-center gap-10 flex-wrap">
136
136
<div class="grow">
···
196
196
<thead>
197
197
<tr>
198
198
<th>endpoint</th>
199
-
<th>status</th>
200
-
<th>last bundle</th>
201
-
<th>mempool</th>
199
+
<th>ok?</th>
200
+
<th>last</th>
201
+
<th>mempool</th>
202
+
<th>age</th>
202
203
<th>head</th>
203
204
<th>root</th>
204
205
<th>version</th>
···
207
208
<th>latency</th>
208
209
</tr>
209
210
</thead>
210
-
<tbody>
211
+
<tbody class="[&>tr]:hover:bg-primary-500/10">
211
212
{#each orderBy(instances, ...instanceOrderBy) as instance}
212
213
<tr>
213
214
<td><a href={instance.url} target="_blank" class="font-semibold">{instance.url.replace("https://", "")}</a></td>
214
215
<td>{#if instance._head}{#if isConflict}⚠️{:else}✅{/if}{:else if instance.status}🔄{:else}⌛{/if}</td>
215
216
<td>{#if instance.status?.bundles?.last_bundle}{instance.status?.bundles?.last_bundle}{/if}</td>
216
-
<td>{#if instance.status?.mempool && instance.status?.bundles?.last_bundle === lastKnownBundle.number}{formatNumber(instance.status?.mempool.count)}{:else if instance.status}<span class="opacity-25">syncing</span>{/if}</td>
217
+
<td>{#if instance.status?.mempool && instance._head}{formatNumber(instance.status?.mempool.count)}{:else if instance.status}<span class="opacity-25">syncing</span>{/if}</td>
218
+
<td class="text-xs opacity-50">{#if instance.status?.mempool && instance._head}{instance.status?.mempool.last_op_age_seconds || 0}s{/if}</td>
217
219
<td><span class="font-mono text-xs {instance._head ? (isConflict ? 'text-error-600' : 'text-success-600') : 'opacity-50'}">{#if instance.status?.bundles?.head_hash}{instance.status?.bundles?.head_hash.slice(0, 7)}{/if}</span></td>
218
220
<td><span class="font-mono text-xs {instance.status ? (instance.status?.bundles?.root_hash === ROOT ? 'text-success-600' : 'text-error-600') : ''}">{#if instance.status?.bundles?.root_hash}{instance.status?.bundles?.root_hash.slice(0, 7)}{/if}</span></td>
219
-
<td>{#if instance.status?.server?.version}{instance.status?.server?.version}{/if}</td>
220
-
<td>{#if instance.status?.server?.websocket_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
221
+
<td class="text-xs">{#if instance.status?.server?.version}<a href="{instance.url}/status">{instance.status?.server?.version}</a>{/if}</td>
222
+
<td class="text-xs">{#if instance.status?.server?.websocket_enabled}✔︎{:else if instance.status}<span class="opacity-25">-</span>{/if}</td>
221
223
<td class="text-xs">{#if instance.status?.server?.uptime_seconds}{formatUptime(instance.status?.server?.uptime_seconds)}{/if}</td>
222
-
<td class="opacity-50">{#if instance.status?.latency}{Math.round(instance.status?.latency)}ms{/if}</td>
224
+
<td class="text-xs opacity-50">{#if instance.status?.latency}{Math.round(instance.status?.latency)}ms{/if}</td>
223
225
</tr>
224
226
{/each}
225
227
</tbody>