From 19cae3338228412133dc90e0b7f87376295d9b1f Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Wed, 15 Oct 2025 14:07:55 -0700 Subject: [PATCH] Fix crash when delete after drag --- src-web/components/core/tree/Tree.tsx | 2 +- src-web/components/core/tree/TreeDragOverlay.tsx | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src-web/components/core/tree/Tree.tsx b/src-web/components/core/tree/Tree.tsx index cea0400d..5183b620 100644 --- a/src-web/components/core/tree/Tree.tsx +++ b/src-web/components/core/tree/Tree.tsx @@ -300,7 +300,7 @@ function TreeInner( const clearDragState = useCallback(() => { jotaiStore.set(hoveredParentFamily(treeId), { parentId: null, index: null }); - // jotaiStore.set(draggingIdsFamily(treeId), []); + jotaiStore.set(draggingIdsFamily(treeId), []); }, [treeId]); const handleDragEnd = useCallback( diff --git a/src-web/components/core/tree/TreeDragOverlay.tsx b/src-web/components/core/tree/TreeDragOverlay.tsx index a9f48b19..15be60e7 100644 --- a/src-web/components/core/tree/TreeDragOverlay.tsx +++ b/src-web/components/core/tree/TreeDragOverlay.tsx @@ -25,13 +25,15 @@ export function TreeDragOverlay({ node={{ item: { ...root.item, id: `${root.item.id}_dragging` }, parent: null, - children: draggingItems.map((id) => { - const child = selectableItems.find((i2) => { - return i2.node.item.id === id; - })!.node; - return { ...child, children: undefined }; - // Remove children so we don't render them in the drag preview - }), + children: draggingItems + .map((id) => { + const child = selectableItems.find((i2) => { + console.log('i2', i2); + return i2.node.item.id === id; + })?.node; + return child == null ? null : { ...child, children: undefined }; + }) + .filter((c) => c != null), }} getItemKey={getItemKey} ItemInner={ItemInner}