From 09c909c3779926b590ac02ffef7e36f0abf7bc13 Mon Sep 17 00:00:00 2001 From: Jerald-Golden-B Date: Mon, 1 Sep 2025 12:37:09 +0530 Subject: [PATCH] decal drop bug fix --- .../sidebarLeft/assetList/assetsHelpers/renderAssetHelper.tsx | 4 ++-- app/src/components/layout/sidebarRight/SideBarRight.tsx | 2 +- app/src/modules/builder/Decal/decalCreator/decalCreator.tsx | 4 ++-- .../builder/Decal/eventHandler/useDecalEventHandlers.ts | 3 ++- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/components/layout/sidebarLeft/assetList/assetsHelpers/renderAssetHelper.tsx b/app/src/components/layout/sidebarLeft/assetList/assetsHelpers/renderAssetHelper.tsx index 2c27f79..bd553c1 100644 --- a/app/src/components/layout/sidebarLeft/assetList/assetsHelpers/renderAssetHelper.tsx +++ b/app/src/components/layout/sidebarLeft/assetList/assetsHelpers/renderAssetHelper.tsx @@ -12,14 +12,14 @@ export const RenderAsset: React.FC<{ asset: AssetProp | DecalProp; index: number src={asset.decalImage} alt={asset.decalName} className="asset-image" - onPointerDown={() => + onPointerDown={() => { setDroppedDecal({ category: asset.category, decalName: asset.decalName, decalImage: asset.decalImage, decalId: asset.id, }) - } + }} />
{asset.decalName diff --git a/app/src/components/layout/sidebarRight/SideBarRight.tsx b/app/src/components/layout/sidebarRight/SideBarRight.tsx index 5e283c9..37b255a 100644 --- a/app/src/components/layout/sidebarRight/SideBarRight.tsx +++ b/app/src/components/layout/sidebarRight/SideBarRight.tsx @@ -198,7 +198,7 @@ const SideBarRight: React.FC = () => { }; return ( -
+
e.stopPropagation()}>
{toggleUIRight && ( <> diff --git a/app/src/modules/builder/Decal/decalCreator/decalCreator.tsx b/app/src/modules/builder/Decal/decalCreator/decalCreator.tsx index 44e46e3..16721d3 100644 --- a/app/src/modules/builder/Decal/decalCreator/decalCreator.tsx +++ b/app/src/modules/builder/Decal/decalCreator/decalCreator.tsx @@ -16,7 +16,7 @@ function DecalCreator() { const { wallStore, floorStore } = useSceneContext(); const { addDecal: addDecalOnWall, getWallById } = wallStore(); const { addDecal: addDecalOnFloor, getFloorById } = floorStore(); - const { droppedDecal } = useDroppedDecal(); + const { droppedDecal, setDroppedDecal } = useDroppedDecal(); const { activeModule } = useModuleStore(); const { userId, organization } = getUserData(); const { selectedVersionStore } = useVersionContext(); @@ -30,13 +30,13 @@ function DecalCreator() { const onDrop = (event: DragEvent) => { if (droppedDecal) { + setDroppedDecal(null); pointer.x = (event.clientX / window.innerWidth) * 2 - 1; pointer.y = -(event.clientY / window.innerHeight) * 2 + 1; raycaster.setFromCamera(pointer, camera); const intersects = raycaster.intersectObjects(scene.children, true); const wallIntersect = intersects.find(i => i.object.userData && i.object.userData.wallUuid); const floorIntersect = intersects.find(i => i.object.userData && i.object.userData.floorUuid); - console.log('wallIntersect: ', wallIntersect); if (wallIntersect) { const wall = getWallById(wallIntersect.object.userData.wallUuid); diff --git a/app/src/modules/builder/Decal/eventHandler/useDecalEventHandlers.ts b/app/src/modules/builder/Decal/eventHandler/useDecalEventHandlers.ts index ef5f223..9a860b9 100644 --- a/app/src/modules/builder/Decal/eventHandler/useDecalEventHandlers.ts +++ b/app/src/modules/builder/Decal/eventHandler/useDecalEventHandlers.ts @@ -116,7 +116,7 @@ export function useDecalEventHandlers({ } }); - const handlePointerUp = (e: PointerEvent) => { + const handlePointerUp = () => { if (controls) { (controls as CameraControls).enabled = true; } @@ -235,6 +235,7 @@ export function useDecalEventHandlers({ }; const handleDecalUp = (e: ThreeEvent) => { + e.stopPropagation(); if (visible && !toggleView && activeModule === 'builder') { if (!decalDragState.isDragging && !selectedDecal && e.object.userData.decalUuid && toolMode === 'cursor') { setSelectedDecal({ decalMesh: e.object, decalData: decal });