From a3b62db4fa521e3fbc865c76dcd51d21cf5fee2c Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 17 Apr 2025 16:35:06 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=A7=80=EB=B6=95=EB=8D=AE=EA=B0=9C=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20-=20=EB=B3=B5=EB=8F=84=EC=B9=98=EC=88=98?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9=20=EA=B7=B8=20=EC=99=B8=20=EB=A9=94?= =?UTF-8?q?=EB=89=B4=20-=20=EC=8B=A4=EC=B9=98=EC=88=98=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/common/useMenu.js | 40 ++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/hooks/common/useMenu.js b/src/hooks/common/useMenu.js index 7fdd6a31..4261d7e6 100644 --- a/src/hooks/common/useMenu.js +++ b/src/hooks/common/useMenu.js @@ -16,12 +16,13 @@ import { usePopup } from '@/hooks/usePopup' import { useState } from 'react' import { v4 as uuidv4 } from 'uuid' import { useSurfaceShapeBatch } from '@/hooks/surface/useSurfaceShapeBatch' -import { useRecoilValue } from 'recoil' +import { useRecoilState, useRecoilValue } from 'recoil' import { canvasState, currentMenuState } from '@/store/canvasAtom' import { MENU } from '@/common/common' import { useTrestle } from '@/hooks/module/useTrestle' import { usePolygon } from '@/hooks/usePolygon' import { useOrientation } from '@/hooks/module/useOrientation' +import { settingModalFirstOptionsState } from '@/store/settingAtom' /** * 메뉴 처리 훅 @@ -36,8 +37,21 @@ export default function useMenu() { const { deleteAllSurfacesAndObjects } = useSurfaceShapeBatch({}) const { clear: trestleClear, setAllModuleSurfaceIsComplete } = useTrestle() const { nextStep } = useOrientation() + const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState) const handleMenu = (type) => { if (type === 'outline') { + setSettingModalFirstOptions((prev) => { + return { + ...prev, + dimensionDisplay: prev.dimensionDisplay.map((item, index) => { + if (index === 0) { + return { ...item, selected: true } + } else { + return { ...item, selected: false } + } + }), + } + }) switch (currentMenu) { case MENU.ROOF_COVERING.EXTERIOR_WALL_LINE: addPopup(popupId, 1, ) @@ -67,6 +81,18 @@ export default function useMenu() { } if (type === 'surface') { + setSettingModalFirstOptions((prev) => { + return { + ...prev, + dimensionDisplay: prev.dimensionDisplay.map((item, index) => { + if (index === 1) { + return { ...item, selected: true } + } else { + return { ...item, selected: false } + } + }), + } + }) switch (currentMenu) { // case MENU.BATCH_CANVAS.SLOPE_SETTING: // addPopup(popupId, 1, ) @@ -87,6 +113,18 @@ export default function useMenu() { } if (type === 'module') { + setSettingModalFirstOptions((prev) => { + return { + ...prev, + dimensionDisplay: prev.dimensionDisplay.map((item, index) => { + if (index === 1) { + return { ...item, selected: true } + } else { + return { ...item, selected: false } + } + }), + } + }) switch (currentMenu) { case MENU.MODULE_CIRCUIT_SETTING.BASIC_SETTING: trestleClear() From 76938af446cef38d4772f4ae90aba2e07d1fea67 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 17 Apr 2025 16:40:40 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EC=A7=80=EB=B6=95=EB=A9=B4=20=ED=95=A0?= =?UTF-8?q?=EB=8B=B9=20=EC=8B=9C=EC=97=90=EB=8F=84=20=EC=8B=A4=EC=B9=98?= =?UTF-8?q?=EC=88=98=20=EC=A0=81=EC=9A=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/common/useMenu.js | 3 +++ src/hooks/roofcover/useRoofAllocationSetting.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/hooks/common/useMenu.js b/src/hooks/common/useMenu.js index 4261d7e6..8b0540dd 100644 --- a/src/hooks/common/useMenu.js +++ b/src/hooks/common/useMenu.js @@ -40,6 +40,7 @@ export default function useMenu() { const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState) const handleMenu = (type) => { if (type === 'outline') { + // 지붕 덮개 메뉴의 경우는 복도치수로 적용한다. setSettingModalFirstOptions((prev) => { return { ...prev, @@ -81,6 +82,7 @@ export default function useMenu() { } if (type === 'surface') { + // 배치면 메뉴의 경우는 실치수로 적용한다. setSettingModalFirstOptions((prev) => { return { ...prev, @@ -113,6 +115,7 @@ export default function useMenu() { } if (type === 'module') { + // 모듈,회로 구성 메뉴의 경우는 실치수로 적용한다. setSettingModalFirstOptions((prev) => { return { ...prev, diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index bc4d246a..42dbb947 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -11,6 +11,7 @@ import { roofDisplaySelector, roofMaterialsSelector, selectedRoofMaterialSelector, + settingModalFirstOptionsState, } from '@/store/settingAtom' import { usePopup } from '@/hooks/usePopup' import { POLYGON_TYPE } from '@/common/common' @@ -57,6 +58,7 @@ export function useRoofAllocationSetting(id) { const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState) const resetPoints = useResetRecoilState(outerLinePointsState) + const [settingModalFirstOptions, setSettingModalFirstOptions] = useRecoilState(settingModalFirstOptionsState) useEffect(() => { /** 배치면 초기설정에서 선택한 지붕재 배열 설정 */ @@ -428,6 +430,19 @@ export function useRoofAllocationSetting(id) { setEditingLines([]) closeAll() setSelectedMenu('surface') + //지붕면 완성 후 실측치 로 보이도록 수정 + setSettingModalFirstOptions((prev) => { + return { + ...prev, + dimensionDisplay: prev.dimensionDisplay.map((item, index) => { + if (index === 1) { + return { ...item, selected: true } + } else { + return { ...item, selected: false } + } + }), + } + }) /** 모듈 선택 데이터 초기화 */ modifyModuleSelectionData()