From e99236fd3066150abcd5d2a976ff8a28d6108430 Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Fri, 21 Feb 2025 17:29:49 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EB=AF=B8=EC=A0=80=EC=9E=A5=20plan?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=A0=80=EC=9E=A5=ED=95=9C=20plan=20=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EC=8B=9C=20=EB=B0=B0=EC=B9=98=EB=A9=B4?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=EC=84=A4=EC=A0=95=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EB=8B=AB=ED=9E=98=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../placementShape/PlacementShapeSetting.jsx | 4 ++++ src/hooks/option/useCanvasSetting.js | 21 ++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index 05880782..ed400f95 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -33,6 +33,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla const { findCommonCode } = useCommonCode() const [raftCodes, setRaftCodes] = useState([]) // 서까래 정보 const [currentRoof, setCurrentRoof] = useState(null) // 현재 선택된 지붕재 정보 + const { closePopup } = usePopup() // usePopup에서 closeAll 함수 가져오기 const roofRef = { roofCd: useRef(null), @@ -213,6 +214,9 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla roofInfo, }, }) + + /* 저장 후 화면 닫기 */ + closePopup(id) } return ( diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 37161700..255cc9ee 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -139,7 +139,7 @@ export function useCanvasSetting() { const selectedRoofMaterial = useRecoilValue(selectedRoofMaterialSelector) // 선택된 지붕재 정보 const { floorPlanState } = useContext(FloorPlanContext) // 플랜 상태 - const { closeAll } = usePopup() // 팝업 닫기 + const { closePopup } = usePopup() // 팝업 닫기 useEffect(() => { const tempFetchRoofMaterials = !fetchRoofMaterials @@ -338,6 +338,11 @@ export function useCanvasSetting() { roofAngle: item.roofAngle, } }) + + /* 데이터 존재 시 화면 닫기(메뉴/저장 클릭 시 제외) */ + if (openPoint !== 'canvasMenus' && openPoint !== 'basicSettingSave') { + closePopup(popupId) + } } else { roofsRow = [ { @@ -475,11 +480,8 @@ export function useCanvasSetting() { roofSizeSet: String(params.roofSizeSet), }) - /* 배치면초기설정 조회 */ - fetchBasicSettings(params.planNo, null) - /* 메뉴 설정 */ - if (['2', '3'].includes(basicSetting?.roofSizeSet)) { + if (['2', '3'].includes(params.roofSizeSet)) { setMenuNumber(3) setType('surface') setCurrentMenu(MENU.BATCH_CANVAS.BATCH_DRAWING) @@ -489,6 +491,9 @@ export function useCanvasSetting() { setCurrentMenu(MENU.ROOF_COVERING.EXTERIOR_WALL_LINE) } + /* 배치면초기설정 조회 */ + fetchBasicSettings(params.planNo, 'basicSettingSave') + /* 모듈 선택 데이터 초기화 */ resetModuleSelectionData() moduleSelectedDataTrigger({ common: {}, module: {}, roofConstructions: [] }) @@ -536,9 +541,6 @@ export function useCanvasSetting() { roofSizeSet: String(params.roofSizeSet), }) - /* 배치면초기설정 조회 */ - fetchBasicSettings(Number(params.planNo), null) - /* 메뉴 설정 */ if (['2', '3'].includes(params?.roofSizeSet)) { setMenuNumber(3) @@ -550,6 +552,9 @@ export function useCanvasSetting() { setCurrentMenu(MENU.ROOF_COVERING.EXTERIOR_WALL_LINE) } + /* 배치면초기설정 조회 */ + fetchBasicSettings(Number(params.planNo), null) + /* 모듈 선택 데이터 초기화 */ resetModuleSelectionData() moduleSelectedDataTrigger({ common: {}, module: {}, roofConstructions: [] })