From 01b1c97248582b8ce24ca23dbdeebf85edc85bdf Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Mon, 26 Jan 2026 13:51:21 +0900 Subject: [PATCH] =?UTF-8?q?#1418=20=EB=B3=B4=EC=A1=B0=EC=84=A0=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=9A=A9=EC=9D=B4=ED=95=98=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/auxiliary/AuxiliaryDrawing.jsx | 5 +++++ src/hooks/roofcover/useAuxiliaryDrawing.js | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/floor-plan/modal/auxiliary/AuxiliaryDrawing.jsx b/src/components/floor-plan/modal/auxiliary/AuxiliaryDrawing.jsx index ee0f304b..64759f8c 100644 --- a/src/components/floor-plan/modal/auxiliary/AuxiliaryDrawing.jsx +++ b/src/components/floor-plan/modal/auxiliary/AuxiliaryDrawing.jsx @@ -133,6 +133,11 @@ export default function AuxiliaryDrawing({ id, pos = { x: 50, y: 230 } }) { } const onClickButton = (button) => { + if (buttonAct === button.id || type === button.type) { + setButtonAct(null) + setType(null) + return + } setButtonAct(button.id) setType(button.type) } diff --git a/src/hooks/roofcover/useAuxiliaryDrawing.js b/src/hooks/roofcover/useAuxiliaryDrawing.js index ed16ae58..bbf3628a 100644 --- a/src/hooks/roofcover/useAuxiliaryDrawing.js +++ b/src/hooks/roofcover/useAuxiliaryDrawing.js @@ -77,6 +77,13 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) { useEffect(() => { typeRef.current = type clear() + if (type === null) { + initEvent() + return + } + initEvent() + addCanvasMouseEventListener('mouse:move', mouseMove) + addCanvasMouseEventListener('mouse:down', mouseDown) addDocumentEventListener('keydown', document, keydown[type]) }, [type]) @@ -133,7 +140,7 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) { // roofs의 innerLines에서 object와 같은 것을 찾아서 제거 const roofs = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF) roofs.forEach((roof) => { - roof.innerLines = roof.innerLines.filter(inner => inner !== object) + roof.innerLines = roof.innerLines.filter((inner) => inner !== object) }) canvas.remove(object)