@@ -138,13 +138,37 @@ function StatusPill({ p }: { p: Precedent }) {
if ( p . halachot_count === 0 ) {
return < Badge variant = "outline" > ל ל א ה ל כ ו ת < / Badge > ;
}
// Split the count into approved / pending / rejected so a high total no
// longer reads as "lots waiting" when the remainder is actually rejected.
// Pending is the only state that needs the chair — highlight it in red.
const hasPending = p . pending_count > 0 ;
return (
< Badge variant = "outline" className = "bg-gold-wash text-gold-deep border-gold/40" >
{ p . approved_count } / { p . halachot_count } מ א ו ש ר ו ת
< Badge
variant = "outline"
dir = "ltr"
className = "bg-gold-wash text-gold-deep border-gold/40 tabular-nums"
title = { ` ${ p . approved_count } מאושרות · ${ p . pending_count } ממתינות · ${ p . rejected_count } נדחו ` }
>
< span className = "text-success font-semibold" > { p . approved_count } < / span >
< span className = "text-ink-light" > / < / span >
< span className = { hasPending ? "text-danger font-bold" : "text-ink-light" } >
{ p . pending_count }
< / span >
< span className = "text-ink-light" > / < / span >
< span className = "text-ink-muted" > { p . rejected_count } < / span >
< span className = "ms-1 text-[0.7rem] text-ink-muted" > ה ל כ ו ת < / span >
< / Badge >
) ;
}
// Rows with halachot still awaiting the chair get a reddish wash so the
// "needs attention" queue is visible at a glance without opening each row.
function rowClassName ( p : Precedent ) : string {
return p . pending_count > 0
? "border-rule bg-danger-bg/40 hover:bg-danger-bg/60 align-top"
: "border-rule hover:bg-gold-wash/30 align-top" ;
}
function CourtRow ( { p , onEdit } : { p : Precedent ; onEdit : ( id : string ) = > void } ) {
const del = useDeletePrecedent ( ) ;
const reqHalachot = useRequestHalachotExtraction ( ) ;
@@ -175,7 +199,7 @@ function CourtRow({ p, onEdit }: { p: Precedent; onEdit: (id: string) => void })
} ;
return (
< TableRow className = "border-rule hover:bg-gold-wash/30 align-top" >
< TableRow className = { rowClassName ( p ) } >
< TableCell
className = "font-semibold text-navy text-right whitespace-normal break-words min-w-[280px] max-w-[420px] py-3"
dir = "rtl"
@@ -276,7 +300,7 @@ function CommitteeRow({ p, onEdit }: { p: Precedent; onEdit: (id: string) => voi
} ;
return (
< TableRow className = "border-rule hover:bg-gold-wash/30 align-top" >
< TableRow className = { rowClassName ( p ) } >
< TableCell
className = "font-semibold text-navy text-right whitespace-normal break-words min-w-[200px] max-w-[320px] py-3"
dir = "rtl"