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) {
setSelectedDecal({ decalData: selectedDecal.decalData, decalMesh: decalRef.current });
}
// eslint-disable-next-line
}, [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);
@@ -126,6 +127,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
} else {
loadDefaultTexture();
}
// eslint-disable-next-line
}, [decal.decalId]);
useEffect(() => {
@@ -140,6 +142,7 @@ function DecalInstance({ parent, visible = true, decal, zPosition = decal.decalP
if (selectedDecal) setSelectedDecal(null);
if (deletableDecal) setDeletableDecal(null);
}
// eslint-disable-next-line
}, [toggleView, toolMode, activeModule, selectedDecal, deletableDecal]);
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]}
userData={decal}
onPointerDown={(e) => { if (e.button === 0) handlePointerDown(e) }}
onPointerUp={(e) => { if (e.button === 0) handleDecalUp(e) }}
onClick={(e) => { handleClick(e) }}
onPointerEnter={(e) => { handlePointerEnter(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>) => {
if (visible && !toggleView && activeModule === 'builder') {
if (e.object.userData.decalUuid) {
@@ -342,11 +333,11 @@ export function useDecalEventHandlers({
canvasElement?.removeEventListener("keyup", onKeyUp);
canvasElement.removeEventListener("keydown", onKeyDown);
};
// eslint-disable-next-line
}, [gl, activeModule, toggleView, selectedDecal, camera, controls, visible, parent, decal, decalDragState]);
return {
handlePointerDown,
handleDecalUp,
handleClick,
handlePointerEnter,
handlePointerLeave,