טוען...
;
+ }
+ if (error) {
+ return (
+
+ {/* ── Source-of-truth warning ── */}
+ {data.source_of_truth === "docx" && (
+
+
+
+ קיים קובץ DOCX מתוקן המשמש כמקור האמת לתיק זה. עריכת בלוקים כאן
+ נשמרת ב-DB אך לא תעדכן את ה-DOCX עד הפקת טיוטה
+ מחדש.
+
+
+ )}
+
+ {/* ── Header line ── */}
+
+
תוכן ההחלטה לפי בלוקים
+
+ {written}/12 בלוקים נכתבו
+
+
+
+ {!data.has_decision && (
+
+ טרם נכתבו בלוקים לתיק זה. ניתן להתחיל לכתוב בכל בלוק להלן — הכתיבה
+ תיצור את ההחלטה אוטומטית.
+
+ )}
+
+ {/* ── 12 blocks ── */}
+
+ {data.blocks.map((block) => (
+
+
+
+
+ {blockLabel(block)}
+
+
+ {STATUS_LABELS[block.status]}
+
+ {block.word_count > 0 && (
+
+ {block.word_count} מילים
+
+ )}
+
+
+
+
+
+
+ ))}
+
+
+ );
+}
+
+/* ── Per-block view / edit ────────────────────────────── */
+
+type SaveState =
+ | { kind: "idle" }
+ | { kind: "saving" }
+ | { kind: "saved"; at: Date }
+ | { kind: "error"; message: string };
+
+function BlockEditor({
+ caseNumber,
+ block,
+}: {
+ caseNumber: string;
+ block: DecisionBlock;
+}) {
+ const [editing, setEditing] = useState(false);
+ const [value, setValue] = useState(block.content);
+ const [state, setState] = useState