diff --git a/apps/builder/app/canvas/shared/use-drag-drop.ts b/apps/builder/app/canvas/shared/use-drag-drop.ts index 8852f8f50e..17617a50b1 100644 --- a/apps/builder/app/canvas/shared/use-drag-drop.ts +++ b/apps/builder/app/canvas/shared/use-drag-drop.ts @@ -30,6 +30,7 @@ import { getAncestorInstanceSelector, } from "~/shared/tree-utils"; import { + findClosestContainer, findClosestInstanceMatchingFragment, isTreeMatching, } from "~/shared/matcher"; @@ -67,7 +68,16 @@ const findClosestDroppableInstanceSelector = ( const instances = $instances.get(); const metas = $registeredComponentMetas.get(); - let droppableIndex = -1; + // prevent dropping anything into non containers like image + let droppableIndex = findClosestContainer({ + metas, + instances, + instanceSelector, + }); + if (droppableIndex === -1) { + return; + } + instanceSelector = instanceSelector.slice(droppableIndex); if (dragPayload?.type === "insert") { const fragment = getComponentTemplateData(dragPayload.dragComponent); if (fragment) {