From c53ef9a7c41aa8e11c3ef6de38a8e39b72b16e65 Mon Sep 17 00:00:00 2001 From: Chaim Date: Thu, 11 Jun 2026 22:42:34 +0000 Subject: [PATCH] =?UTF-8?q?feat(ui):=20/approvals=20=E2=80=94=20=D7=99?= =?UTF-8?q?=D7=99=D7=A9=D7=95=D7=9D=20=D7=A0=D7=90=D7=9E=D7=9F=20=D7=A9?= =?UTF-8?q?=D7=9C=20=D7=A2=D7=99=D7=A6=D7=95=D7=91-=D7=94=D7=9E=D7=95?= =?UTF-8?q?=D7=A7=D7=90=D7=A4=20(=D7=AA=D7=99=D7=A7=D7=95=D7=9F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit יישום מלא של פריסת-הכרטיס מהמוקאפ המאושר 01-approvals (במקום ליטוש שטחי קודם): מספר-גדול (text-3xl navy) במקום badge קטן · נקודת-חומרה + כותרת + שורת-ותק · שורות-מדגם עם המקור מיושר לקצה והפרדה עדינה · CTA gold. כל הנתונים/לוגיקה נשמרו. Co-Authored-By: Claude Opus 4.8 (1M context) --- web-ui/src/app/approvals/page.tsx | 80 +++++++++++++++++-------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/web-ui/src/app/approvals/page.tsx b/web-ui/src/app/approvals/page.tsx index 0d78299..25dee49 100644 --- a/web-ui/src/app/approvals/page.tsx +++ b/web-ui/src/app/approvals/page.tsx @@ -17,13 +17,6 @@ import { * פסיקה חסרה, הערות שטרם יושמו, ותיקים שנכשלו ב-QA. המטרה: * שאף פריט הדורש את אישורך לא יישכח. הנתונים נשלפים חי מ-/api/chair/pending. */ -const SEVERITY_BADGE: Record = { - high: "bg-gold text-navy border-transparent", - medium: "bg-gold-wash text-gold-deep border-gold/40", - low: "bg-rule-soft text-ink-muted border-rule", - ok: "bg-emerald-50 text-emerald-800 border-emerald-300/60", -}; - // Severity expressed as a colored dot next to the title (matches the approved // IA-redesign mockup): high=danger, medium=warn, low=info, ok=success. const SEVERITY_DOT: Record = { @@ -49,67 +42,84 @@ function formatDate(iso?: string | null): string { function ApprovalCard({ cat }: { cat: ApprovalCategory }) { const cleared = cat.count === 0; return ( - - -
+ + + {/* top row — severity dot · title+age · big count number (mockup 01) */} +
-

{cat.label}

+
+

{cat.label}

+
+ {cleared ? ( + + תור נקי + + ) : cat.oldest_at ? ( + <>הוותיק ביותר — {formatDate(cat.oldest_at)} + ) : ( + cat.description + )} +
+
{cat.count}
-

- {cat.description} -

- - {cat.oldest_at && cat.count > 0 ? ( -

- הישן ביותר ממתין מ־{formatDate(cat.oldest_at)} -

+ {/* description kept (subtle) when the age line took the title slot */} + {!cleared && cat.oldest_at ? ( +

{cat.description}

) : null} {cat.extra ? ( -

+

סך {cat.extra.total} שאילתות · {cat.extra.reviewed} אושרו על־ידך

) : null} - {cleared ? ( -

אין פריטים ממתינים ✓

- ) : cat.sample && cat.sample.length > 0 ? ( -
    + {!cleared && cat.sample && cat.sample.length > 0 ? ( +
      {cat.sample.map((s, i) => { - const body = ( - <> - {s.text || "—"} + const row = ( +
      + {s.text || "—"} {s.source ? ( - · {s.source} + + {s.source} + ) : null} - +
      ); return ( -
    • +
    • {s.href ? ( - - {body} + + {row} ) : ( - body + row )}
    • ); })}
    + ) : cleared ? ( +

    + אין פריטים הממתינים להתייחסות. כל התיקים עברו בדיקת-איכות. +

    ) : null} -
    + {/* foot — gold CTA when actionable, quiet outline when cleared */} +
    {cat.href ? ( cleared ? (