diff --git a/src/components/interactives/KasutiEmbroidery.tsx b/src/components/interactives/KasutiEmbroidery.tsx index cb1b195..655de7f 100644 --- a/src/components/interactives/KasutiEmbroidery.tsx +++ b/src/components/interactives/KasutiEmbroidery.tsx @@ -743,6 +743,7 @@ const KasutiEmbroidery: React.FC = () => { const totalEdges = placed.edges.length; const frontRemaining = totalEdges - drawnFront.size; const backRemaining = totalEdges - drawnBack.size; + const deadEnd = !completed && currentVertex !== null && legalNextVertices.length === 0; return (
@@ -868,6 +869,7 @@ const KasutiEmbroidery: React.FC = () => { legalNext={legalNextVertices} canStartAt={canStartAt} completed={completed} + deadEnd={deadEnd} remaining={frontRemaining} /> { legalNext={legalNextVertices} canStartAt={canStartAt} completed={completed} + deadEnd={deadEnd} remaining={backRemaining} />
@@ -900,7 +903,7 @@ const KasutiEmbroidery: React.FC = () => { )} - {!completed && currentVertex && legalNextVertices.length === 0 && ( + {deadEnd && (
No legal stitches from here on the {activeSide}. Undo a step or reset to try a different route. @@ -931,6 +934,7 @@ interface FabricPanelProps { legalNext: V[]; canStartAt: (v: V) => boolean; completed: boolean; + deadEnd: boolean; remaining: number; } @@ -950,6 +954,7 @@ const FabricPanel: React.FC = ({ legalNext, canStartAt, completed, + deadEnd, remaining, }) => { const isActive = activeSide === side && !completed; @@ -1030,7 +1035,9 @@ const FabricPanel: React.FC = ({