From a96b90dc3a68de45f7cf6856d28000b6c2ed5af7 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Tue, 25 Feb 2025 10:21:54 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20=EC=82=AD=EC=A0=9C=20=EC=8B=9C=20=EA=B7=B8=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=EB=8F=84=20=EC=82=AC=EB=9D=BC=EC=A7=80=EB=8A=94=20?= =?UTF-8?q?=ED=98=84=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/option/useCanvasSetting.js | 19 ++++++++++++++++++- src/hooks/surface/useSurfaceShapeBatch.js | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 5ae28ba9..ab72fbc2 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -52,7 +52,9 @@ const defaultDotLineGridSetting = { LINE: false, } -export function useCanvasSetting() { +// hook 추가 시 executeEffect를 인자로 받고 false일 경우 useEffect를 실행하지 않는다. default true +// 아래 hook에 추가 된 함수만 사용하고 싶을 경우 false로 인자 전달 +export function useCanvasSetting(executeEffect = true) { const canvas = useRecoilValue(canvasState) /** canvas가 null이 아닐 때에만 getObjects 호출 */ const canvasObjects = canvas ? canvas.getObjects() : [] @@ -138,6 +140,9 @@ export function useCanvasSetting() { const { closePopup, closeAll } = usePopup() // 팝업 닫기 useEffect(() => { + if (!executeEffect) { + return + } const tempFetchRoofMaterials = !fetchRoofMaterials /** 초 1회만 실행하도록 처리 */ @@ -175,6 +180,9 @@ export function useCanvasSetting() { } useEffect(() => { + if (!executeEffect) { + return + } if (addedRoofs.length > 0 && addedRoofs[0].planNo === basicSetting.planNo) { const raftCodeList = findCommonCode('203800') setRaftCodes(raftCodeList) @@ -188,6 +196,9 @@ export function useCanvasSetting() { }, [addedRoofs]) useEffect(() => { + if (!executeEffect) { + return + } const selectedRoofMaterial = roofMaterials[0] if (addedRoofs.length === 0) { @@ -202,6 +213,9 @@ export function useCanvasSetting() { if (!canvas) { return } + if (!executeEffect) { + return + } const { column } = corridorDimension const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText') @@ -230,6 +244,9 @@ export function useCanvasSetting() { }, [corridorDimension]) useEffect(() => { + if (!executeEffect) { + return + } if (settingsDataSave !== undefined) onClickOption2() }, [settingsData]) diff --git a/src/hooks/surface/useSurfaceShapeBatch.js b/src/hooks/surface/useSurfaceShapeBatch.js index a90a1b97..439465a0 100644 --- a/src/hooks/surface/useSurfaceShapeBatch.js +++ b/src/hooks/surface/useSurfaceShapeBatch.js @@ -22,6 +22,7 @@ import { placementShapeDrawingPointsState } from '@/store/placementShapeDrawingA import { getBackGroundImage } from '@/lib/imageActions' import PlacementSurfaceLineProperty from '@/components/floor-plan/modal/placementShape/PlacementSurfaceLineProperty' import { v4 as uuidv4 } from 'uuid' +import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { const { getMessage } = useMessage() @@ -40,6 +41,7 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { const { addPopup, closePopup } = usePopup() const { setSurfaceShapePattern } = useRoofFn() const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) + const { fetchSettings } = useCanvasSetting(false) const applySurfaceShape = (surfaceRefs, selectedType, id) => { let length1, length2, length3, length4, length5 @@ -762,6 +764,7 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { resetOuterLinePoints() resetPlacementShapeDrawingPoints() + fetchSettings() swalFire({ text: getMessage('plan.message.delete') }) }, // denyFn: () => {