Wire Deploy Recon page to new recon API panels and streaming results.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

This commit is contained in:
AetherForge
2026-06-07 12:28:27 -07:00
parent 5317135a7d
commit 8c343ac984
6 changed files with 375 additions and 169 deletions

View File

@@ -244,17 +244,20 @@ export const UploadAdminMap = memo(function UploadAdminMap({ rows }: { rows: Adm
</tr>
</thead>
<tbody>
{rows.map((r) => (
<tr key={r.url}>
<td>
<a href={r.url} target="_blank" rel="noreferrer">
{r.path}
</a>
</td>
<td>{r.status_code}</td>
<td>{r.signal}</td>
</tr>
))}
{rows.map((r) => {
const live = r.status_code >= 200 && r.status_code < 400;
return (
<tr key={r.url} className={live ? 'dr-admin-live' : 'dr-admin-muted'}>
<td>
<a href={r.url} target="_blank" rel="noreferrer">
{r.path}
</a>
</td>
<td>{r.status_code || '—'}</td>
<td>{r.signal}</td>
</tr>
);
})}
</tbody>
</table>
</section>
@@ -282,9 +285,11 @@ export const TechStackBanner = memo(function TechStackBanner({ stack }: { stack:
export const ActionMatrix = memo(function ActionMatrix({
rows,
onOpenPlaybook,
onAction,
}: {
rows: ReconActionRow[];
onOpenPlaybook?: (lane: string) => void;
onAction?: (lane: string, action: string) => void;
}) {
if (!rows.length) return null;
return (
@@ -312,6 +317,7 @@ export const ActionMatrix = memo(function ActionMatrix({
className="btn btn-outline btn-sm"
onClick={() => {
if (a === 'playbook' && onOpenPlaybook) onOpenPlaybook(r.lane);
onAction?.(r.lane, a);
}}
>
{a}