From 37e881bf8c2aae0c7ce3111428018391ed7730e2 Mon Sep 17 00:00:00 2001 From: Chaim Date: Tue, 16 Jun 2026 18:49:56 +0000 Subject: [PATCH] =?UTF-8?q?feat(nav):=20=D7=94=D7=A1=D7=A8=D7=AA=20=D7=A4?= =?UTF-8?q?=D7=99=D7=9C=D7=99-=D7=98=D7=90=D7=91=D7=99=D7=9D=20=D7=95?= =?UTF-8?q?=D7=AA=D7=92=D7=99-=D7=A0=D7=99=D7=95=D7=95=D7=98=20+=20=D7=94?= =?UTF-8?q?=D7=95=D7=A8=D7=93=D7=AA=20"=D7=A4=D7=A1=D7=99=D7=A7=D7=94=20?= =?UTF-8?q?=D7=97=D7=A1=D7=A8=D7=94"=20=D7=9E=D7=94=D7=AA=D7=A4=D7=A8?= =?UTF-8?q?=D7=99=D7=98=20(#3/#4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #3 — הסרת תגי-המספר הקטנים: - app-shell: הוסרו ApprovalsBadge ("מרכז אישורים") ו-MissingPrecedentsBadge. - precedents: הוסרו CountPill/PendingPill/PlansPendingPill/IncomingPill מהטאבים; הקו-תחתון-זהב לבדו נושא את מצב-הטאב-הפעיל. #4 — "פסיקה חסרה" ירדה מתפריט-הניווט "פסיקה" (כפולה לטאב "פסיקה נכנסת" ב-/precedents). הדף /missing-precedents נשאר נגיש מתוך אותו טאב. מאושר דרך שער-העיצוב (Claude Design 07-precedents). Invariants: G2 — הסרת תגים-מקבילים; INV-IA1 — מרכז-האישורים נשאר שער-יחיד (התג ירד, הדף לא). Co-Authored-By: Claude Opus 4.8 (1M context) --- web-ui/src/app/precedents/page.tsx | 55 +++++------------------------ web-ui/src/components/app-shell.tsx | 46 +++--------------------- 2 files changed, 13 insertions(+), 88 deletions(-) diff --git a/web-ui/src/app/precedents/page.tsx b/web-ui/src/app/precedents/page.tsx index edc3e0f..9513300 100644 --- a/web-ui/src/app/precedents/page.tsx +++ b/web-ui/src/app/precedents/page.tsx @@ -9,8 +9,6 @@ import { LibrarySearchPanel } from "@/components/precedents/library-search-panel import { HalachaReviewPanel } from "@/components/precedents/halacha-review-panel"; import { PlansReviewPanel } from "@/components/precedents/plans-review-panel"; import { LibraryStatsPanel } from "@/components/precedents/library-stats-panel"; -import { useHalachotPending } from "@/lib/api/precedent-library"; -import { usePlansPending } from "@/lib/api/plans"; import { useMissingPrecedents } from "@/lib/api/missing-precedents"; /** @@ -27,39 +25,6 @@ import { useMissingPrecedents } from "@/lib/api/missing-precedents"; * per-case precedent attacher (chair-attached quotes scoped to a case). */ -/** Colored count pill riding on a tab trigger (mockup 07: warn for review - * queue, info for incoming). Returns null when the queue is empty. */ -function CountPill({ n, tone }: { n: number; tone: "warn" | "info" }) { - if (!n) return null; - const cls = - tone === "warn" - ? "bg-warn text-white" - : "bg-info text-white"; - return ( - - {n} - - ); -} - -function PendingPill() { - const { data } = useHalachotPending(); - return ; -} - -function PlansPendingPill() { - const { data } = usePlansPending(); - return ; -} - -function IncomingPill() { - // "פסיקה נכנסת" = open missing-precedents waiting for the chair to upload. - const { data } = useMissingPrecedents({ status: "open", limit: 1 }); - return ; -} - const PRECEDENT_TABS = new Set(["library", "search", "review", "plans", "incoming", "stats"]); export default function PrecedentsPage() { @@ -93,19 +58,16 @@ export default function PrecedentsPage() { {/* tabs as a dedicated row under the header — underline-style - triggers with colored count pills (mockup 07). */} + triggers; count pills removed (#3), the active underline alone + carries state (mockup 07). */} {[ - { value: "library", label: "ספרייה", pill: null }, - { value: "search", label: "חיפוש בקורפוס", pill: null }, - { value: "review", label: "תור הלכות", pill: }, - { value: "plans", label: "תכניות", pill: }, - { - value: "incoming", - label: "פסיקה נכנסת", - pill: , - }, - { value: "stats", label: "סטטיסטיקה", pill: null }, + { value: "library", label: "ספרייה" }, + { value: "search", label: "חיפוש בקורפוס" }, + { value: "review", label: "תור הלכות" }, + { value: "plans", label: "תכניות" }, + { value: "incoming", label: "פסיקה נכנסת" }, + { value: "stats", label: "סטטיסטיקה" }, ].map((t) => ( {t.label} - {t.pill} ))} diff --git a/web-ui/src/components/app-shell.tsx b/web-ui/src/components/app-shell.tsx index 9aae76c..6f45db0 100644 --- a/web-ui/src/components/app-shell.tsx +++ b/web-ui/src/components/app-shell.tsx @@ -15,8 +15,6 @@ import { } from "@/components/ui/dropdown-menu"; import { GlobalSearch } from "@/components/global-search"; import { headerSubtitle } from "@/components/header-context"; -import { useMissingPrecedentsOpenCount } from "@/lib/api/missing-precedents"; -import { usePendingApprovals } from "@/lib/api/chair"; /** * Ezer Mishpati navigation shell — two-row header. @@ -55,11 +53,12 @@ const KNOWLEDGE_MENUS: NavMenuDef[] = [ { id: "precedents", label: "פסיקה", + // #4: "פסיקה חסרה" (/missing-precedents) ירד מהתפריט — הוא כפול לטאב + // "פסיקה נכנסת" בתוך /precedents. הדף עצמו נשאר נגיש מתוך אותו טאב. items: [ - { href: "/precedents", label: "ספריית פסיקה" }, - { href: "/digests", label: "יומונים" }, - { href: "/missing-precedents", label: "פסיקה חסרה" }, - { href: "/graph", label: "מפת הקורפוס" }, + { href: "/precedents", label: "ספריית פסיקה" }, + { href: "/digests", label: "יומונים" }, + { href: "/graph", label: "מפת הקורפוס" }, ], }, { @@ -260,7 +259,6 @@ function NavLink({ item, active }: { item: NavItem; active: boolean }) { `} > {item.label} - {item.href === "/approvals" ? : null} {active && ( isActive(pathname, i.href)); - const hasMissingPrecedents = menu.items.some((i) => i.href === "/missing-precedents"); return ( {menu.label} - {hasMissingPrecedents ? : null}