From 2226cfd5090b2c4120d27b79d43573a5586e559d Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Mon, 20 Jan 2025 19:34:46 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8Efix:=20=EC=B9=98=EC=88=98=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EB=B0=A9=EB=B2=95=EC=97=90=20=EC=9D=98?= =?UTF-8?q?=ED=95=B4=EC=84=9C=20=EB=A9=94=EB=89=B4=20validation=20check=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 0f32da9b..bdb612a8 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -41,7 +41,7 @@ import { isObjectNotEmpty } from '@/util/common-utils' import KO from '@/locales/ko.json' import JA from '@/locales/ja.json' -import { MENU } from '@/common/common' +import { MENU, POLYGON_TYPE } from '@/common/common' import { QcastContext } from '@/app/QcastProvider' @@ -167,7 +167,12 @@ export default function CanvasMenu(props) { setType('surface') break case 4: - setType('module') + if (!checkMenuAndCanvasState()) { + swalFire({ text: getMessage('estimate.menu.move.valid1') }) + return + } else { + setType('module') + } break case 5: // let pid = urlParams.get('pid') @@ -328,6 +333,14 @@ export default function CanvasMenu(props) { return (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) || (menuNumber === 4 && menu.index === 2) } + const checkMenuAndCanvasState = () => { + const roofs = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF) + // 지붕면 할당이 끝난 지붕이 하나라도 있는지 체크 + const isExist = roofs?.some((roof) => roof.roofMaterial) + console.log('🚀 ~ checkMenuAndCanvasState ~ isExist:', isExist) + return isExist + } + useEffect(() => { if (isObjectNotEmpty(estimateRecoilState)) { if (estimateRecoilState?.createUser === 'T01') {