dev #827
@ -30,9 +30,26 @@ export default function ObjectSetting({ id, pos = { x: 50, y: 230 } }) {
|
||||
//오브젝트 배치로 넘어오면 면형상 선택 불가
|
||||
useEffect(() => {
|
||||
canvas.discardActiveObject()
|
||||
|
||||
// [ROOF-SELECTABLE-RESTORE 2026-05-08] 모달 닫힘 시 roof selectable 원복.
|
||||
// 누락되어 있어 한 번 진입 후엔 지붕 선택 불가 → 자동배치 단계에서 다른 hook 이 다시
|
||||
// selectable=true 로 set 해주기 전까진 클릭 무반응 상태가 지속됐음.
|
||||
// 무조건 true 로 복원하면 동시에 열린 다른 모드(roof.selectable=false 의도) 와 충돌 가능 →
|
||||
// 진입 시점의 원래 값을 snapshot 해두고 cleanup 시 그 값으로 복원(다른 모드의 의도 보존).
|
||||
const prevSelectable = surfaceShapePolygons.map((obj) => ({ obj, selectable: obj.selectable }))
|
||||
|
||||
surfaceShapePolygons.forEach((obj) => {
|
||||
obj.set({ selectable: false })
|
||||
})
|
||||
|
||||
return () => {
|
||||
prevSelectable.forEach(({ obj, selectable }) => {
|
||||
// 객체가 이미 캔버스에서 제거됐을 수도 있으므로 canvas 멤버십 확인 후 복원.
|
||||
if (canvas?.getObjects().includes(obj)) {
|
||||
obj.set({ selectable })
|
||||
}
|
||||
})
|
||||
}
|
||||
}, [])
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user