diff --git a/.next/dev/cache/turbopack/23c46498/CURRENT b/.next/dev/cache/turbopack/23c46498/CURRENT index 976f6e5..31d94df 100644 Binary files a/.next/dev/cache/turbopack/23c46498/CURRENT and b/.next/dev/cache/turbopack/23c46498/CURRENT differ diff --git a/.next/dev/cache/turbopack/23c46498/LOG b/.next/dev/cache/turbopack/23c46498/LOG index 1616925..15f8ea9 100644 --- a/.next/dev/cache/turbopack/23c46498/LOG +++ b/.next/dev/cache/turbopack/23c46498/LOG @@ -5828,3 +5828,9 @@ FAM | META SEQ | SST SEQ | RANGE 2 | 00013383 | 00013377 SST | [================================================================================] | 20ff59e1772d8bcf-ef311d8b965c9633 (0 MiB, fresh) 4 | 00013384 | 00013380 SST | O | 20ff59e1772d8bcf-20ff59e1772d8bcf (0 MiB, fresh) 3 | 00013385 | 00013379 SST | O | 7d92be8ee8c5a114-7d92be8ee8c5a114 (0 MiB, fresh) +Time 2026-03-05T09:11:40.4842923Z +Commit 00013505 4 keys in 7ms 949µs 500ns +FAM | META SEQ | SST SEQ | RANGE + 0 | 00013503 | 00013502 SST | [=======================================================================] | 3aefa6fd5cf2deb4-f42f94001fcb5351 (0 MiB, fresh) + 1 | 00013504 | 00013500 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) + 2 | 00013505 | 00013501 SST | O | 3ffdfb3b7d50fcf1-3ffdfb3b7d50fcf1 (0 MiB, fresh) diff --git a/src/components/StoryWorkflow.tsx b/src/components/StoryWorkflow.tsx index 2af9453..0c51e97 100644 --- a/src/components/StoryWorkflow.tsx +++ b/src/components/StoryWorkflow.tsx @@ -80,6 +80,7 @@ interface StoryNodeProps { onSetEditing: (id: string | null) => void; onToggleColorPicker: (id: string) => void; onSaveColor: (color: string) => void; + onDelete: (id: string, e: React.MouseEvent) => void; onNavigateToEntity: (id: string) => void; onInputFocus: (e: React.FocusEvent) => void; @@ -90,7 +91,7 @@ interface StoryNodeProps { const StoryNode = React.memo(({ node, isSelected, isEditing, isDragging, activeColorPickerId, entities, savedColors, onMouseDown, onMouseUp, onStartConnection, onUpdate, onSetEditing, - onToggleColorPicker, onSaveColor, onNavigateToEntity, + onToggleColorPicker, onSaveColor, onDelete, onNavigateToEntity, onInputFocus, onInputCheckAutocomplete, onKeyDownInInput }: StoryNodeProps) => { const { t } = useLanguage(); @@ -199,6 +200,16 @@ const StoryNode = React.memo(({ )} +
+ +
+
{showTypePicker && (
e.stopPropagation()}> @@ -590,6 +601,19 @@ const StoryWorkflow: React.FC = ({ data, onUpdate, entities, setSelectedNodeIds(new Set()); }; + const handleDeleteNode = (id: string, e: React.MouseEvent) => { + e.stopPropagation(); + pushHistory(); + const newNodes = internalNodes.filter(n => n.id !== id); + const newConnections = data.connections.filter(c => c.source !== id && c.target !== id); + onUpdate({ nodes: newNodes, connections: newConnections }); + setSelectedNodeIds(prev => { + const next = new Set(prev); + next.delete(id); + return next; + }); + }; + const handleAddNodeCenter = () => { pushHistory(); const scrollLeft = containerRef.current?.scrollLeft || 0; @@ -689,6 +713,7 @@ const StoryWorkflow: React.FC = ({ data, onUpdate, entities, onSetEditing={setEditingNodeId} onToggleColorPicker={handleToggleColorPicker} onSaveColor={handleSaveColor} + onDelete={handleDeleteNode} onNavigateToEntity={onNavigateToEntity} onInputFocus={handleInputFocus} onInputCheckAutocomplete={handleInputWithAutocomplete}