import { Code, Rows, Waiting, ago, useMirror, when } from "../components/Mirror.jsx"; import { ProductGrid } from "../components/ProductGrid.jsx"; function Tick({ data }) { const task = data.task; const waiting = task?.metadata?.waiting_since; return ( `${id}x${n}`).join(" ")}` : ""}` : "no batch"], ["Live", `${data.live.products} products in ${data.live.batches} batches, ${data.live.expiring} expiring within a day, newest ${ago(data.live.newest)}, oldest ${ago(data.live.oldest)}`], ]} /> ); } export function Automator({ pending = [], now }) { const seen = useMirror("/automator/automator.json"); const data = seen?.data ?? null; return (
{pending.length ? (

{`Batch ${pending[0].design}: ${pending.length} of the pairs so far`}

) : null}

Automator

The automator, read from the bucket every minute. Raw: automator.json. The cloud numbers live on stats.

Tick

{data ? : }

Log

{data?.log?.length ? : }
); }