decal drop bug fix

This commit is contained in:
2025-09-01 12:37:09 +05:30
parent 7d7100893c
commit 09c909c377
4 changed files with 7 additions and 6 deletions

View File

@@ -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);

View File

@@ -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<MouseEvent>) => {
e.stopPropagation();
if (visible && !toggleView && activeModule === 'builder') {
if (!decalDragState.isDragging && !selectedDecal && e.object.userData.decalUuid && toolMode === 'cursor') {
setSelectedDecal({ decalMesh: e.object, decalData: decal });