fix(precedents): wrap citation column + extractor fills source_type
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m27s

Two follow-ups after running the metadata extractor on 403-17:

1. Library table: shadcn TableCell defaults to whitespace-nowrap and
   the table wrapper has overflow-x-auto, so the long citation forced
   a horizontal scrollbar inside the row. Override on the citation
   cell only — whitespace-normal + break-words + min/max-w to keep the
   column readable. Same for the case-name cell. Row aligns to top so
   wrapping doesn't push neighbours up.

2. Extractor now also fills source_type (court_ruling /
   appeals_committee). The previous round added decision_date_iso,
   precedent_level, and court but left source_type empty. Same
   closed-enum + merge-only-if-empty policy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 12:28:35 +00:00
parent 6420fe4b0b
commit 8e1384b897
2 changed files with 24 additions and 4 deletions

View File

@@ -83,11 +83,20 @@ function PrecedentRow({
};
return (
<TableRow className="border-rule hover:bg-gold-wash/30">
<TableCell className="font-semibold text-navy text-right" dir="rtl">
<TableRow className="border-rule hover:bg-gold-wash/30 align-top">
<TableCell
/* shadcn TableCell defaults to whitespace-nowrap which forces the
* row wider than the container; for this column we want the long
* citation to wrap onto a second line instead of triggering the
* horizontal scroll on the table wrapper. min-w/max-w keeps the
* column wide enough to avoid awkward 2-word lines while leaving
* room for the other columns. */
className="font-semibold text-navy text-right whitespace-normal break-words min-w-[280px] max-w-[420px] py-3"
dir="rtl"
>
<span dir="auto">{cleanCitation(p.case_number)}</span>
</TableCell>
<TableCell className="text-ink">
<TableCell className="text-ink whitespace-normal break-words max-w-[260px] py-3">
<div className="font-medium">{cleanCitation(p.case_name)}</div>
{p.court ? (
<div className="text-[0.72rem] text-ink-muted">{p.court}</div>