+
+
+
+
+ ชื่อหน้า
+ onChange({ ...draft, title: event.target.value })}
+ />
+
+
+ หมายเหตุสาธารณะ
+
+
+
+
+
+
+ {draft.blocks.map((block, index) => (
+ onSelect(block.id)}
+ onPatch={(config) => patchBlock(block.id, config)}
+ onMove={(direction) => changeBlocks(moveBlock(draft.blocks, block.id, direction))}
+ onDrop={(draggedId) => changeBlocks(moveBlockTo(draft.blocks, draggedId, block.id))}
+ onDuplicate={() => changeBlocks(duplicateBlock(draft.blocks, block.id))}
+ onDelete={() => {
+ changeBlocks(draft.blocks.filter((candidate) => candidate.id !== block.id));
+ if (selectedId === block.id) onSelect("");
+ }}
+ />
+ ))}
+
+
+
+
+ );
+}
+
+function EditableBlock({
+ block,
+ index,
+ total,
+ selected,
+ onSelect,
+ onPatch,
+ onMove,
+ onDrop,
+ onDuplicate,
+ onDelete,
+}: {
+ block: SerializedBlock;
+ index: number;
+ total: number;
+ selected: boolean;
+ onSelect: () => void;
+ onPatch: (config: Record