authorgravatar for maria@kuuro.netmaria <maria@kuuro.net> 2026-09-09 22:26:18-03:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-09 22:26:18-03:00
logaddfb1390eea5e850fb5e235525f9eb6c4ade100
tree74fdb029171fec7a52e4e0af9ffcd8de808d4875
parentb7b3ef1e6fcb5c22a9790d2578fe8af7ce396835
signature Signed by PGP key B5690EEEBB952194

fix(web): restore pr list diff counts to the top right (#10609)


1 files changed, 36 insertions(+), 28 deletions(-)

apps/web/src/components/pullRequest/PullRequestRow.tsx+36-28
......@@ -1,4 +1,4 @@
1import { SearchIcon } from "lucide-react";
1import { SearchIcon, UserCheckIcon } from "lucide-react";
22import { PullRequestStackPopover } from "./PullRequestStackPopover";
33import { memo, type RefCallback } from "react";
44
......@@ -121,7 +121,7 @@ function PullRequestRowImpl({
121121 <span className="col-start-1 row-start-1 block truncate text-sm font-medium text-foreground">
122122 {entry.title}
123123 </span>
124 <span className="col-start-2 row-start-1 flex max-w-36 items-center justify-self-end gap-2 text-xs">
124 <span className="col-start-2 row-start-1 flex items-center justify-self-end gap-2 text-xs">
125125 {entry.stack ? (
126126 <PullRequestStackPopover
127127 environmentId={entry.environmentId}
......@@ -137,31 +137,11 @@ function PullRequestRowImpl({
137137 }
138138 />
139139 ) : null}
140 {/* Only a verdict somebody has actually given: "review required" is the absence of
141 one, and saying so on every unreviewed row would say nothing. */}
142 {entry.reviewDecision === "approved" || entry.reviewDecision === "changes-requested" ? (
143 <span
144 className={cn(
145 "sr-only @md/pr-row:not-sr-only @md/pr-row:min-w-0 @md/pr-row:truncate",
146 entry.reviewDecision === "approved"
147 ? "text-emerald-600/90 dark:text-emerald-400/80"
148 : "text-amber-600/90 dark:text-amber-400/80",
149 )}
150 >
151 {entry.reviewDecision === "approved" ? "Approved" : "Changes requested"}
152 </span>
153 ) : null}
154 {entry.checksState === undefined ? null : (
155 <PullRequestChecksPopover
156 checksState={entry.checksState}
157 environmentId={entry.environmentId}
158 reference={{
159 projectId: entry.projectId,
160 repository: entry.repository,
161 number: entry.number,
162 }}
163 />
164 )}
140 <PullRequestDiffStat
141 additions={entry.additions}
142 deletions={entry.deletions}
143 className="shrink-0 whitespace-nowrap text-[11px]"
144 />
165145 </span>
166146 <PullRequestMetaLine className="@container/pr-row-meta col-start-1 row-start-2 overflow-hidden text-xs text-muted-foreground/70">
167147 {matchedElsewhere ? (
......@@ -215,9 +195,37 @@ function PullRequestRowImpl({
215195 labelClassName="sr-only @xs/pr-row-meta:not-sr-only @xs/pr-row-meta:truncate"
216196 />
217197 {entry.labels.length > 0 ? <PullRequestRowLabels labels={entry.labels} /> : null}
198 {/* Only a verdict somebody has actually given: "review required" is the absence of
199 one, and saying so on every unreviewed row would say nothing. */}
200 {entry.reviewDecision === "approved" ? (
201 <Tooltip>
202 <TooltipTrigger render={<span className="inline-flex shrink-0" />}>
203 <UserCheckIcon
204 aria-hidden
205 className="size-3.5 text-emerald-600/90 dark:text-emerald-400/80"
206 />
207 <span className="sr-only">Approved</span>
208 </TooltipTrigger>
209 <TooltipPopup>Approved</TooltipPopup>
210 </Tooltip>
211 ) : entry.reviewDecision === "changes-requested" ? (
212 <span className="min-w-0 truncate text-amber-600/90 dark:text-amber-400/80">
213 Changes requested
214 </span>
215 ) : null}
216 {entry.checksState === undefined ? null : (
217 <PullRequestChecksPopover
218 checksState={entry.checksState}
219 environmentId={entry.environmentId}
220 reference={{
221 projectId: entry.projectId,
222 repository: entry.repository,
223 number: entry.number,
224 }}
225 />
226 )}
218227 </PullRequestMetaLine>
219228 <span className="col-start-2 row-start-2 flex items-center justify-self-end gap-3 whitespace-nowrap text-[11px] text-muted-foreground/70 tabular-nums">
220 <PullRequestDiffStat additions={entry.additions} deletions={entry.deletions} />
221229 <span className="hidden @sm/pr-row:inline">
222230 {formatRelativeTimeLabel(entry.updatedAt)}
223231 </span>