diff --git a/core/board/AppsTable.tsx b/core/board/AppsTable.tsx index c8280e7..4992c09 100644 --- a/core/board/AppsTable.tsx +++ b/core/board/AppsTable.tsx @@ -31,7 +31,7 @@ export function AppsTable({ onOpenRow, registerChevron, }: { section: AppsSection; showHead: boolean; data: StatusData; board: BoardState } & DrawerRowProps) { - const { isRestarting, onRestart, onPublish } = board; + const { isRestarting, onRestart, onRunCommand, onPublish } = board; return ( {showHead && ( @@ -45,6 +45,7 @@ export function AppsTable({ public + )} @@ -76,6 +77,9 @@ export function AppsTable({ + + + registerChevron(row.name, el)} /> @@ -291,6 +295,19 @@ function RestartCell({ ); } +function CommandsCell({ row, onRunCommand }: { row: Row; onRunCommand: (row: Row, name: string) => void }) { + if (!row.commands?.length) return null; + return ( + <> + {row.commands.map((name) => ( + + ))} + + ); +} + /** Opens the row's drawer via the row's own onClick (this button is exempted from `isDrawerClick`'s interactive-target check, so the click bubbles rather than needing its own handler). A plain `