normalize pagination and requester metadata sizing
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -28,21 +28,21 @@ export function Requester({ item, label = '작업자' }: { item: RequesterLike;
|
|||||||
const initial = name.trim().charAt(0).toUpperCase() || '?';
|
const initial = name.trim().charAt(0).toUpperCase() || '?';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span className="inline-flex min-w-0 items-center gap-2 text-muted-foreground">
|
<span className="inline-flex h-4 min-w-0 items-center gap-1.5 align-middle text-muted-foreground">
|
||||||
<span>{label}</span>
|
<span className="leading-none">{label}</span>
|
||||||
{avatarUrl && !failed ? (
|
{avatarUrl && !failed ? (
|
||||||
<img
|
<img
|
||||||
src={avatarUrl}
|
src={avatarUrl}
|
||||||
alt=""
|
alt=""
|
||||||
className="size-6 shrink-0 rounded-full border border-border bg-muted object-cover"
|
className="size-4 shrink-0 rounded-full border border-border bg-muted object-cover"
|
||||||
onError={() => setFailed(true)}
|
onError={() => setFailed(true)}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<span className="inline-flex size-6 shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[11px] font-semibold text-muted-foreground">
|
<span className="inline-flex size-4 shrink-0 items-center justify-center rounded-full border border-border bg-muted text-[9px] font-semibold leading-none text-muted-foreground">
|
||||||
{initial}
|
{initial}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
<b className="truncate text-foreground">{name}</b>
|
<b className="truncate leading-none text-foreground">{name}</b>
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -574,7 +574,7 @@ export function SourceManagementPage() {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
||||||
<span className="text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
||||||
</span>
|
</span>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ export function CommonAppBuildPage() {
|
|||||||
[pipelines]
|
[pipelines]
|
||||||
);
|
);
|
||||||
const selectedPipeline = pipelines.find((pipeline) => pipeline.repoId === selectedRepoId) ?? pipelines[0];
|
const selectedPipeline = pipelines.find((pipeline) => pipeline.repoId === selectedRepoId) ?? pipelines[0];
|
||||||
|
const effectiveHistoryTotalPages = historyTotal !== null
|
||||||
|
? Math.max(1, historyTotalPages ?? Math.ceil(historyTotal / historyPageSize))
|
||||||
|
: historyTotalPages;
|
||||||
|
|
||||||
const refreshHistory = useCallback((repoId: string, page: number, silent = false) => {
|
const refreshHistory = useCallback((repoId: string, page: number, silent = false) => {
|
||||||
if (!repoId) {
|
if (!repoId) {
|
||||||
@@ -209,8 +212,8 @@ export function CommonAppBuildPage() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-between border-t border-border px-5 py-3 text-xs text-muted-foreground">
|
<div className="flex items-center justify-between border-t border-border px-5 py-3 text-xs text-muted-foreground">
|
||||||
<span>
|
<span>
|
||||||
{historyTotal !== null && historyTotalPages !== null
|
{historyTotal !== null
|
||||||
? `총 ${historyTotal}건 · ${historyPage} / ${historyTotalPages}`
|
? `총 ${historyTotal}건 · ${historyPage} / ${effectiveHistoryTotalPages ?? 1}`
|
||||||
: `현재 ${historyPage}페이지`}
|
: `현재 ${historyPage}페이지`}
|
||||||
</span>
|
</span>
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ export function CommonAppSourcePage() {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
||||||
<span className="text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
||||||
</span>
|
</span>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|||||||
@@ -710,7 +710,7 @@ export function LauncherSourcePage() {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
<div className="flex items-center justify-between gap-3 border-t border-border px-5 py-4 text-sm">
|
||||||
<span className="text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
{totalCommits === null ? `페이지 ${commitPage}` : `총 ${totalCommits}건 · ${commitPage} / ${totalCommitPages}`}
|
||||||
</span>
|
</span>
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user