This commit is contained in:
2025-09-02 09:16:45 +05:30
2 changed files with 5 additions and 12 deletions

View File

@@ -25,9 +25,10 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
if (selectedDecal?.decalData.decalUuid === decal.decalUuid && !selectedDecal.decalMesh) { if (selectedDecal?.decalData.decalUuid === decal.decalUuid && !selectedDecal.decalMesh) {
setSelectedDecal({ decalData: selectedDecal.decalData, decalMesh: decalRef.current }); setSelectedDecal({ decalData: selectedDecal.decalData, decalMesh: decalRef.current });
} }
// eslint-disable-next-line
}, [selectedDecal]) }, [selectedDecal])
const { handlePointerMissed, handlePointerLeave, handleClick, handlePointerDown, handlePointerEnter, handleDecalUp } = useDecalEventHandlers({ parent, decal, visible }); const { handlePointerMissed, handlePointerLeave, handleClick, handlePointerDown, handlePointerEnter } = useDecalEventHandlers({ parent, decal, visible });
const [texture, setTexture] = useState<THREE.Texture | null>(null); const [texture, setTexture] = useState<THREE.Texture | null>(null);
@@ -126,6 +127,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
} else { } else {
loadDefaultTexture(); loadDefaultTexture();
} }
// eslint-disable-next-line
}, [decal.decalId]); }, [decal.decalId]);
useEffect(() => { useEffect(() => {
@@ -140,6 +142,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
if (selectedDecal) setSelectedDecal(null); if (selectedDecal) setSelectedDecal(null);
if (deletableDecal) setDeletableDecal(null); if (deletableDecal) setDeletableDecal(null);
} }
// eslint-disable-next-line
}, [toggleView, toolMode, activeModule, selectedDecal, deletableDecal]); }, [toggleView, toolMode, activeModule, selectedDecal, deletableDecal]);
return ( return (
@@ -152,7 +155,6 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
scale={[(decal.decalType.type === 'Floor' || zPosition < 0) ? -decal.decalScale : decal.decalScale, decal.decalScale, 0.01]} scale={[(decal.decalType.type === 'Floor' || zPosition < 0) ? -decal.decalScale : decal.decalScale, decal.decalScale, 0.01]}
userData={decal} userData={decal}
onPointerDown={(e) => { if (e.button === 0) handlePointerDown(e) }} onPointerDown={(e) => { if (e.button === 0) handlePointerDown(e) }}
onPointerUp={(e) => { if (e.button === 0) handleDecalUp(e) }}
onClick={(e) => { handleClick(e) }} onClick={(e) => { handleClick(e) }}
onPointerEnter={(e) => { handlePointerEnter(e) }} onPointerEnter={(e) => { handlePointerEnter(e) }}
onPointerLeave={(e) => { handlePointerLeave(e) }} onPointerLeave={(e) => { handlePointerLeave(e) }}

View File

@@ -254,15 +254,6 @@ 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 });
}
}
}
const handleClick = (e: ThreeEvent<MouseEvent>) => { const handleClick = (e: ThreeEvent<MouseEvent>) => {
if (visible && !toggleView && activeModule === 'builder') { if (visible && !toggleView && activeModule === 'builder') {
if (e.object.userData.decalUuid) { if (e.object.userData.decalUuid) {
@@ -342,11 +333,11 @@ export function useDecalEventHandlers({
canvasElement?.removeEventListener("keyup", onKeyUp); canvasElement?.removeEventListener("keyup", onKeyUp);
canvasElement.removeEventListener("keydown", onKeyDown); canvasElement.removeEventListener("keydown", onKeyDown);
}; };
// eslint-disable-next-line
}, [gl, activeModule, toggleView, selectedDecal, camera, controls, visible, parent, decal, decalDragState]); }, [gl, activeModule, toggleView, selectedDecal, camera, controls, visible, parent, decal, decalDragState]);
return { return {
handlePointerDown, handlePointerDown,
handleDecalUp,
handleClick, handleClick,
handlePointerEnter, handlePointerEnter,
handlePointerLeave, handlePointerLeave,