From 679d9f8a3290542c41bcdf0d7944fee5030b5e88 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Mon, 3 Feb 2025 20:34:36 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EB=8C=80=20=EC=84=A4=EC=B9=98=20?= =?UTF-8?q?=ED=9B=84=20=EB=B9=BD=20=ED=95=A0=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EA=B8=B0=EC=A1=B4=20=EA=B0=80=EB=8C=80=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A7=80=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/common.js | 1 + .../floor-plan/modal/basic/step/Orientation.jsx | 10 ++++++---- src/hooks/common/useMenu.js | 3 +++ src/hooks/module/useTrestle.js | 10 +++++++++- src/hooks/useTempGrid.js | 4 ++-- src/util/canvas-util.js | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/common/common.js b/src/common/common.js index a35dc8c4..2578e138 100644 --- a/src/common/common.js +++ b/src/common/common.js @@ -177,6 +177,7 @@ export const SAVE_KEY = [ 'moduleRowsTotCnt', 'seq', 'smartRackId', + 'directionText', 'quotationParam', 'pcses', ] diff --git a/src/components/floor-plan/modal/basic/step/Orientation.jsx b/src/components/floor-plan/modal/basic/step/Orientation.jsx index 590c9d46..d06b6b39 100644 --- a/src/components/floor-plan/modal/basic/step/Orientation.jsx +++ b/src/components/floor-plan/modal/basic/step/Orientation.jsx @@ -28,8 +28,10 @@ export const Orientation = forwardRef(({ tabNum }, ref) => { }, [compasDeg]) const checkDegree = (e) => { - if (numberCheck(Number(e)) && Number(e) >= -180 && Number(e) <= 180) { - setCompasDeg(Number(e)) + if (Number(e) >= -180 && Number(e) <= 180) { + if (numberCheck(Number(e))) { + setCompasDeg(Number(e)) + } } else { setCompasDeg(compasDeg) } @@ -46,8 +48,8 @@ export const Orientation = forwardRef(({ tabNum }, ref) => { {Array.from({ length: 180 / 15 }).map((dot, index) => (
setCompasDeg(15 * (12 + index))} + className={`circle ${getDegreeInOrientation(compasDeg) === -1 * (-15 * index + 180) ? 'act' : ''}`} + onClick={() => setCompasDeg(-1 * (-15 * index + 180))} > {index === 0 && 180°} {index === 6 && -90°} diff --git a/src/hooks/common/useMenu.js b/src/hooks/common/useMenu.js index c0a4e1d5..5eadcf18 100644 --- a/src/hooks/common/useMenu.js +++ b/src/hooks/common/useMenu.js @@ -19,6 +19,7 @@ import { useSurfaceShapeBatch } from '@/hooks/surface/useSurfaceShapeBatch' import { useRecoilValue } from 'recoil' import { currentMenuState } from '@/store/canvasAtom' import { MENU } from '@/common/common' +import { useTrestle } from '@/hooks/module/useTrestle' export default function useMenu() { const menus = [] @@ -26,6 +27,7 @@ export default function useMenu() { const [popupId, setPopupId] = useState(uuidv4()) const { addPopup } = usePopup() const { deleteAllSurfacesAndObjects } = useSurfaceShapeBatch({}) + const { clear: trestleClear } = useTrestle() const handleMenu = (type) => { if (type === 'outline') { switch (currentMenu) { @@ -79,6 +81,7 @@ export default function useMenu() { if (type === 'module') { switch (currentMenu) { case MENU.MODULE_CIRCUIT_SETTING.BASIC_SETTING: + trestleClear() addPopup(popupId, 1, ) break case MENU.MODULE_CIRCUIT_SETTING.CIRCUIT_TRESTLE_SETTING: diff --git a/src/hooks/module/useTrestle.js b/src/hooks/module/useTrestle.js index 2fd95ba2..f9aa1de0 100644 --- a/src/hooks/module/useTrestle.js +++ b/src/hooks/module/useTrestle.js @@ -1882,5 +1882,13 @@ export const useTrestle = () => { } } - return { apply, getTrestleParams } + const clear = () => { + canvas.getObjects().forEach((obj) => { + if (obj.name === 'eaveBar' || obj.name === 'rack' || obj.name === 'halfEaveBar' || obj.name === 'smartRack') { + canvas.remove(obj) + } + }) + } + + return { apply, getTrestleParams, clear } } diff --git a/src/hooks/useTempGrid.js b/src/hooks/useTempGrid.js index 7bfcf263..d43a19c0 100644 --- a/src/hooks/useTempGrid.js +++ b/src/hooks/useTempGrid.js @@ -13,7 +13,7 @@ export function useTempGrid() { //임의 그리드 모드일 경우 let pointer = canvas.getPointer(e.e) - const tempGrid = new fabric.Line([pointer.x, 0, pointer.x, canvas.height], { + const tempGrid = new fabric.Line([pointer.x, -1500, pointer.x, 2500], { stroke: gridColor, strokeWidth: 1, selectable: true, @@ -41,7 +41,7 @@ export function useTempGrid() { //임의 그리드 모드일 경우 let pointer = { x: e.offsetX, y: e.offsetY } - const tempGrid = new fabric.Line([0, pointer.y, canvas.width, pointer.y], { + const tempGrid = new fabric.Line([-1500, pointer.y, 2500, pointer.y], { stroke: gridColor, strokeWidth: 1, selectable: true, diff --git a/src/util/canvas-util.js b/src/util/canvas-util.js index 5df32879..2204eaec 100644 --- a/src/util/canvas-util.js +++ b/src/util/canvas-util.js @@ -957,7 +957,7 @@ export const getAllRelatedObjects = (id, canvas) => { // 모듈,회로 구성에서 사용하는 degree 범위 별 값 export const getDegreeInOrientation = (degree) => { - if (degree >= 352) { + if (degree >= 180 || degree < -180) { return 0 } if (degree % 15 === 0) return degree