From 9826995c1280e9d71ff142d52fd19a11f946048d Mon Sep 17 00:00:00 2001 From: Chaim Date: Wed, 17 Jun 2026 03:54:29 +0000 Subject: [PATCH] =?UTF-8?q?feat(compose):=20=D7=A2=D7=95=D7=A8=D7=9A-12-?= =?UTF-8?q?=D7=91=D7=9C=D7=95=D7=A7=D7=99=D7=9D=20=D7=9B=D7=98=D7=90=D7=91?= =?UTF-8?q?-=D7=91=D7=A8=D7=99=D7=A8=D7=AA-=D7=9E=D7=97=D7=93=D7=9C=20?= =?UTF-8?q?=D7=91-/compose=20(=D7=A7=D7=98=D7=92=D7=95=D7=A8=D7=99=D7=94?= =?UTF-8?q?=20B=20#1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit יישור /compose למוקאפ 03-case-workspace (הכרעת חיים: המוקאפ נכון). ה-main הופך לרצועת-2-טאבים: - "עורך הבלוקים" (ברירת-מחדל) — שימוש-חוזר ב-DecisionBlocksPanel הקיים (12 בלוקים, סטטוס, ספירת-מילים, עורך-inline על parchment, שמירה PUT). - "עמדות וטענות" — עורך-העמדות/טענות הקיים (SubsectionCard/ChairEditor), הועבר כמות-שהוא לטאב. הגייטינג שונה: העמוד נטען לפי caseQuery (לא analysis), כך שעורך-הבלוקים מוצג גם כשטרם בוצע ניתוח; ענפי-ה-analysis (pending/not-found/error/data) עברו לתוך טאב-העמדות. band + rail (מסמכים/פסיקה/השלמה) ללא שינוי. אין שינוי-backend — GET/PUT decision-blocks + useDecisionBlocks/useSaveBlock כבר קיימים. מאושר דרך שער-העיצוב (מוקאפ 03 עודכן עם רצועת-הטאבים). Invariant: G2 — שימוש-חוזר ב-DecisionBlocksPanel, ללא מסלול-עריכת-בלוקים מקביל. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../app/cases/[caseNumber]/compose/page.tsx | 81 +++++++++++++------ 1 file changed, 55 insertions(+), 26 deletions(-) diff --git a/web-ui/src/app/cases/[caseNumber]/compose/page.tsx b/web-ui/src/app/cases/[caseNumber]/compose/page.tsx index 5a389a5..3d73766 100644 --- a/web-ui/src/app/cases/[caseNumber]/compose/page.tsx +++ b/web-ui/src/app/cases/[caseNumber]/compose/page.tsx @@ -9,7 +9,9 @@ import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { SubsectionCard } from "@/components/compose/subsection-card"; import { PrecedentsSection } from "@/components/compose/precedents-section"; +import { DecisionBlocksPanel } from "@/components/cases/decision-blocks-panel"; import { Markdown } from "@/components/ui/markdown"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useCase, type CaseStatus } from "@/lib/api/cases"; import { useResearchAnalysis } from "@/lib/api/research"; import { useCasePrecedents } from "@/lib/api/precedents"; @@ -257,7 +259,7 @@ export default function ComposePage({ {parties &&

{parties}

} - {analysis.isPending ? ( + {caseQuery.isPending ? ( @@ -266,31 +268,54 @@ export default function ComposePage({ - ) : isNotFound ? ( - - -
-

- טרם בוצע ניתוח משפטי לתיק זה -

-

- לאחר שקובץ analysis-and-research.md ייווצר, תוכלי - לערוך כאן את עמדת הוועדה לכל טענת סף וסוגיה. -

-
-
- ) : analysis.error ? ( - - -

{analysis.error.message}

-
-
- ) : analysis.data ? ( - /* ── Two-column workspace: main editor list + 320px side rail ──────── */ + ) : ( + /* ── Two-column workspace: tabbed main editor + 320px side rail ──── */
- {/* MAIN — the block/subsection editor list */} -
- {/* Threshold claims */} + {/* MAIN — block editor (default) + chair positions, as tabs (mockup 03) */} +
+ + + עורך הבלוקים + עמדות וטענות + + + {/* Tab 1 — the 12-block decision editor (reused DecisionBlocksPanel) */} + + + + + {/* Tab 2 — chair positions on the analyst's threshold-claims + issues */} + + {analysis.isPending ? ( + + + + + + + + ) : isNotFound ? ( + + +
+

+ טרם בוצע ניתוח משפטי לתיק זה +

+

+ לאחר שקובץ analysis-and-research.md ייווצר, תוכלי + לערוך כאן את עמדת הוועדה לכל טענת סף וסוגיה. +

+
+
+ ) : analysis.error ? ( + + +

{analysis.error.message}

+
+
+ ) : analysis.data ? ( +
+ {/* Threshold claims */} {analysis.data.threshold_claims && analysis.data.threshold_claims.length > 0 && (
@@ -365,6 +390,10 @@ export default function ComposePage({ )} +
+ ) : null} + +
{/* SIDE RAIL — documents · attached precedents · finish-and-transfer */} @@ -421,7 +450,7 @@ export default function ComposePage({ />
- ) : null} + )} ); } -- 2.49.1