Watch
0
0
Fork
You've already forked hyperhive
0

swarm ui: the PR report's approvals column filters on whether the rule is met

The report had an approvals column (1/2) and a separate approved column.
They are one fact, so approvals now carries the filter, complete or missing,
and the approved column is gone.
This commit is contained in:
iris 2026-11-09 22:44:10 +01:00
commit 71a4d1d255
2 changed files with 27 additions and 12 deletions

View file

@ -26,7 +26,7 @@ import {
approvalsText,
diffSize,
diffText,
hasAllApprovals,
approvalsState,
prReportUrl,
yesNo,
type PrReportRow,
@ -125,14 +125,7 @@ const COLUMNS: TableColumn<PrReportRow>[] = [
</>
),
sortBy: (r) => r.approvals,
},
{
key: "approved",
header: "approved",
render: (r) =>
hasAllApprovals(r) ? <Badge tone="positive" value="yes" /> : "no",
sortBy: (r) => Number(hasAllApprovals(r)),
filterValues: (r) => [yesNo(hasAllApprovals(r))],
filterValues: (r) => [approvalsState(r)],
filterMode: "multiselect",
},
{

View file

@ -55,6 +55,12 @@ export function hasAllApprovals(row: PrReportRow): boolean {
return row.approvals >= row.required_approvals;
}
/** What the approvals column filters on: whether the PR has all the approvals
* its base branch asks for. */
export function approvalsState(row: PrReportRow): "complete" | "missing" {
return hasAllApprovals(row) ? "complete" : "missing";
}
/** The diff size cell: lines added and removed, `+120 −8`. A count the forge
* did not give reads as a dash. */
export function diffText(row: PrReportRow): string {