feat(compose): עורך-12-בלוקים כטאב-ברירת-מחדל ב-/compose (קטגוריה B #1) #281
@@ -9,7 +9,9 @@ import { Button } from "@/components/ui/button";
|
|||||||
import { Skeleton } from "@/components/ui/skeleton";
|
import { Skeleton } from "@/components/ui/skeleton";
|
||||||
import { SubsectionCard } from "@/components/compose/subsection-card";
|
import { SubsectionCard } from "@/components/compose/subsection-card";
|
||||||
import { PrecedentsSection } from "@/components/compose/precedents-section";
|
import { PrecedentsSection } from "@/components/compose/precedents-section";
|
||||||
|
import { DecisionBlocksPanel } from "@/components/cases/decision-blocks-panel";
|
||||||
import { Markdown } from "@/components/ui/markdown";
|
import { Markdown } from "@/components/ui/markdown";
|
||||||
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
import { useCase, type CaseStatus } from "@/lib/api/cases";
|
import { useCase, type CaseStatus } from "@/lib/api/cases";
|
||||||
import { useResearchAnalysis } from "@/lib/api/research";
|
import { useResearchAnalysis } from "@/lib/api/research";
|
||||||
import { useCasePrecedents } from "@/lib/api/precedents";
|
import { useCasePrecedents } from "@/lib/api/precedents";
|
||||||
@@ -257,7 +259,7 @@ export default function ComposePage({
|
|||||||
{parties && <p className="text-ink-soft text-sm mt-2">{parties}</p>}
|
{parties && <p className="text-ink-soft text-sm mt-2">{parties}</p>}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{analysis.isPending ? (
|
{caseQuery.isPending ? (
|
||||||
<Card className="bg-surface border-rule shadow-sm">
|
<Card className="bg-surface border-rule shadow-sm">
|
||||||
<CardContent className="px-6 py-5 space-y-3">
|
<CardContent className="px-6 py-5 space-y-3">
|
||||||
<Skeleton className="h-6 w-48" />
|
<Skeleton className="h-6 w-48" />
|
||||||
@@ -266,31 +268,54 @@ export default function ComposePage({
|
|||||||
<Skeleton className="h-32 w-full" />
|
<Skeleton className="h-32 w-full" />
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
) : isNotFound ? (
|
) : (
|
||||||
<Card className="bg-surface border-rule shadow-sm">
|
/* ── Two-column workspace: tabbed main editor + 320px side rail ──── */
|
||||||
<CardContent className="px-6 py-12 text-center space-y-3">
|
|
||||||
<div className="text-gold text-3xl" aria-hidden>❦</div>
|
|
||||||
<h2 className="text-navy text-lg mb-0">
|
|
||||||
טרם בוצע ניתוח משפטי לתיק זה
|
|
||||||
</h2>
|
|
||||||
<p className="text-ink-muted text-sm max-w-md mx-auto">
|
|
||||||
לאחר שקובץ <code>analysis-and-research.md</code> ייווצר, תוכלי
|
|
||||||
לערוך כאן את עמדת הוועדה לכל טענת סף וסוגיה.
|
|
||||||
</p>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
) : analysis.error ? (
|
|
||||||
<Card className="bg-danger-bg border-danger/40">
|
|
||||||
<CardContent className="px-6 py-5 text-center">
|
|
||||||
<p className="text-danger">{analysis.error.message}</p>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
) : analysis.data ? (
|
|
||||||
/* ── Two-column workspace: main editor list + 320px side rail ──────── */
|
|
||||||
<div className="grid gap-6 lg:grid-cols-[1fr_320px] items-start">
|
<div className="grid gap-6 lg:grid-cols-[1fr_320px] items-start">
|
||||||
{/* MAIN — the block/subsection editor list */}
|
{/* MAIN — block editor (default) + chair positions, as tabs (mockup 03) */}
|
||||||
<div className="space-y-6 min-w-0">
|
<div className="min-w-0">
|
||||||
{/* Threshold claims */}
|
<Tabs defaultValue="blocks" dir="rtl">
|
||||||
|
<TabsList className="bg-rule-soft/60">
|
||||||
|
<TabsTrigger value="blocks">עורך הבלוקים</TabsTrigger>
|
||||||
|
<TabsTrigger value="positions">עמדות וטענות</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
|
||||||
|
{/* Tab 1 — the 12-block decision editor (reused DecisionBlocksPanel) */}
|
||||||
|
<TabsContent value="blocks" className="mt-5">
|
||||||
|
<DecisionBlocksPanel caseNumber={caseNumber} />
|
||||||
|
</TabsContent>
|
||||||
|
|
||||||
|
{/* Tab 2 — chair positions on the analyst's threshold-claims + issues */}
|
||||||
|
<TabsContent value="positions" className="mt-5">
|
||||||
|
{analysis.isPending ? (
|
||||||
|
<Card className="bg-surface border-rule shadow-sm">
|
||||||
|
<CardContent className="px-6 py-5 space-y-3">
|
||||||
|
<Skeleton className="h-6 w-48" />
|
||||||
|
<Skeleton className="h-4 w-96" />
|
||||||
|
<Skeleton className="h-32 w-full" />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
) : isNotFound ? (
|
||||||
|
<Card className="bg-surface border-rule shadow-sm">
|
||||||
|
<CardContent className="px-6 py-12 text-center space-y-3">
|
||||||
|
<div className="text-gold text-3xl" aria-hidden>❦</div>
|
||||||
|
<h2 className="text-navy text-lg mb-0">
|
||||||
|
טרם בוצע ניתוח משפטי לתיק זה
|
||||||
|
</h2>
|
||||||
|
<p className="text-ink-muted text-sm max-w-md mx-auto">
|
||||||
|
לאחר שקובץ <code>analysis-and-research.md</code> ייווצר, תוכלי
|
||||||
|
לערוך כאן את עמדת הוועדה לכל טענת סף וסוגיה.
|
||||||
|
</p>
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
) : analysis.error ? (
|
||||||
|
<Card className="bg-danger-bg border-danger/40">
|
||||||
|
<CardContent className="px-6 py-5 text-center">
|
||||||
|
<p className="text-danger">{analysis.error.message}</p>
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
) : analysis.data ? (
|
||||||
|
<div className="space-y-6">
|
||||||
|
{/* Threshold claims */}
|
||||||
{analysis.data.threshold_claims &&
|
{analysis.data.threshold_claims &&
|
||||||
analysis.data.threshold_claims.length > 0 && (
|
analysis.data.threshold_claims.length > 0 && (
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
@@ -365,6 +390,10 @@ export default function ComposePage({
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
)}
|
)}
|
||||||
|
</div>
|
||||||
|
) : null}
|
||||||
|
</TabsContent>
|
||||||
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* SIDE RAIL — documents · attached precedents · finish-and-transfer */}
|
{/* SIDE RAIL — documents · attached precedents · finish-and-transfer */}
|
||||||
@@ -421,7 +450,7 @@ export default function ComposePage({
|
|||||||
/>
|
/>
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
)}
|
||||||
</AppShell>
|
</AppShell>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user