From 63578276aa189d5a2079ffc95c4034d8dd3a72d3 Mon Sep 17 00:00:00 2001 From: ysCha Date: Thu, 12 Mar 2026 12:54:18 +0900 Subject: [PATCH] =?UTF-8?q?fetchBasicSettings=EC=97=90=EC=84=9C=20correntO?= =?UTF-8?q?bjectNo=EB=A5=BC=20Recoil=20state=EC=97=90=EC=84=9C=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EC=9D=BD=EA=B3=A0=20=EC=9E=88=EC=96=B4=EC=84=9C,?= =?UTF-8?q?=20=EC=83=88=20=EC=98=A4=EB=B8=8C=EC=A0=9D=ED=8A=B8=EA=B0=80=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EB=90=A0=20=EB=95=8C=20=EC=95=84=EC=A7=81=20?= =?UTF-8?q?=EC=9D=B4=EC=A0=84=20=EA=B0=92=EC=9D=B4=20=EB=82=A8=EC=95=84?= =?UTF-8?q?=EC=9E=88=EB=8A=94=20stale=20closure=20=EB=AC=B8=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasFrame.jsx | 2 +- src/hooks/option/useCanvasSetting.js | 9 ++++++--- src/hooks/usePlan.js | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 20d6a348..bd4c6dbb 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -131,7 +131,7 @@ export default function CanvasFrame() { // 메뉴 이동 시 canvasSetting이 덮어쓰이는 것을 방지 // 이미 canvasSetting에 roofSizeSet이 있으면 API 호출 건너뛰기 if (!canvasSetting?.roofSizeSet) { - fetchBasicSettings(Number(currentCanvasPlan.planNo), null) + fetchBasicSettings(Number(currentCanvasPlan.planNo), null, currentCanvasPlan.objectNo) } }, 100) } diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 9176c1d2..1a54e537 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -316,7 +316,10 @@ export function useCanvasSetting(executeEffect = true) { /** * 기본설정(PlacementShapeSetting) 조회 및 초기화 */ - const fetchBasicSettings = async (planNo, openPoint) => { + const fetchBasicSettings = async (planNo, openPoint, objectNo) => { + // objectNo가 전달되면 사용, 아니면 Recoil state의 correntObjectNo 사용 + const targetObjectNo = objectNo || correntObjectNo + // 지붕재 데이터가 없으면 먼저 로드 let materials = roofMaterials if (!materials || materials.length === 0) { @@ -326,9 +329,9 @@ export function useCanvasSetting(executeEffect = true) { } try { - const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}/${planNo}` + const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${targetObjectNo}/${planNo}` logger.log('🔍 fetchBasicSettings API 호출:', apiUrl) - logger.log('🔍 correntObjectNo:', correntObjectNo, 'planNo:', planNo) + logger.log('🔍 targetObjectNo:', targetObjectNo, 'planNo:', planNo) await get({ url: apiUrl, diff --git a/src/hooks/usePlan.js b/src/hooks/usePlan.js index cdb02fef..5c4a9a38 100644 --- a/src/hooks/usePlan.js +++ b/src/hooks/usePlan.js @@ -254,7 +254,7 @@ export function usePlan(params = {}) { setPlans([newPlan]) /* 플랜 추가 시 배치면초기설정 정보 조회 */ - fetchBasicSettings(newPlan.planNo, null) + fetchBasicSettings(newPlan.planNo, null, objectNo) } else { if (isCopy) { const currentSelectedMenu = selectedMenu @@ -579,7 +579,7 @@ export function usePlan(params = {}) { setPlans((plans) => plans.map((plan) => ({ ...plan, isCurrent: plan.id === lastPlan.id }))) /* 플랜 삭제 시 그 전 플랫의 배치면초기설정 정보 조회 */ - fetchBasicSettings(lastPlan.planNo, null) + fetchBasicSettings(lastPlan.planNo, null, lastPlan.objectNo) } }