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: () => {