diff --git a/src/components/RulesOfInferencePlayground.tsx b/src/components/RulesOfInferencePlayground.tsx index e378764..6df2e2f 100644 --- a/src/components/RulesOfInferencePlayground.tsx +++ b/src/components/RulesOfInferencePlayground.tsx @@ -88,13 +88,17 @@ function parseDragData(e: React.DragEvent): { type: DragType; value: string } | } } -function DraggableChip({ label, onDragStart: handle }: { label: string; onDragStart: (e: React.DragEvent) => void }) { +function DraggableChip({ label, onDragStart: handle, disabled = false }: { label: string; onDragStart: (e: React.DragEvent) => void; disabled?: boolean }) { return (
@@ -222,6 +226,7 @@ export default function RulesOfInferencePlayground() { } function handlePremiseDrop(e: React.DragEvent) { + if (reachedTarget) return; // Freeze interactions when solved const data = parseDragData(e); if (!data) return; if (data.type === "premise" || data.type === "statement") { @@ -233,6 +238,7 @@ export default function RulesOfInferencePlayground() { } function handleRuleDrop(e: React.DragEvent) { + if (reachedTarget) return; // Freeze interactions when solved const data = parseDragData(e); if (!data) return; if (data.type === "rule") setActiveRule(data.value); @@ -248,7 +254,7 @@ export default function RulesOfInferencePlayground() { setActivePremises((prev) => prev.filter((x) => x !== p)); return ( -
+
{/* Top controls */}