diff --git a/src/common/common.js b/src/common/common.js index 5cbd3733..588b836c 100644 --- a/src/common/common.js +++ b/src/common/common.js @@ -159,6 +159,7 @@ export const SAVE_KEY = [ 'arrow', 'surfaceCompass', 'moduleCompass', + 'isFixed', ] export const OBJECT_PROTOTYPE = [fabric.Line.prototype, fabric.Polygon.prototype, fabric.Triangle.prototype] diff --git a/src/hooks/roofcover/useOuterLineWall.js b/src/hooks/roofcover/useOuterLineWall.js index b2244da8..7c4d5091 100644 --- a/src/hooks/roofcover/useOuterLineWall.js +++ b/src/hooks/roofcover/useOuterLineWall.js @@ -1,6 +1,6 @@ import { useEffect, useRef } from 'react' import { distanceBetweenPoints } from '@/util/canvas-util' -import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' +import { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil' import { adsorptionPointAddModeState, adsorptionPointModeState, @@ -65,6 +65,7 @@ export function useOuterLineWall(id, propertiesId) { const [arrow1, setArrow1] = useRecoilState(outerLineArrow1State) const [arrow2, setArrow2] = useRecoilState(outerLineArrow2State) const [points, setPoints] = useRecoilState(outerLinePointsState) + const resetPoints = useResetRecoilState(outerLinePointsState) const [type, setType] = useRecoilState(outerLineTypeState) const [angle1, setAngle1] = useRecoilState(outerLineAngle1State) const [angle2, setAngle2] = useRecoilState(outerLineAngle2State) @@ -88,6 +89,13 @@ export function useOuterLineWall(id, propertiesId) { clear() return () => { initEvent() + + canvas + .getObjects() + .filter((obj) => obj.name === 'startPoint') + .forEach((obj) => { + canvas.remove(obj) + }) } }, [verticalHorizontalMode, points, adsorptionPointAddMode, adsorptionPointMode, adsorptionRange, interval, tempGridMode]) diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index b4118dc1..5626e075 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -176,7 +176,7 @@ export function useRoofAllocationSetting(id) { } const apply = () => { - const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF) + const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF && !obj.isFixed) const wallLines = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.WALL) roofBases.forEach((roofBase) => { try { @@ -199,6 +199,10 @@ export function useRoofAllocationSetting(id) { const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof') roofs.forEach((roof) => { + if (roof.isFixed) return + roof.set({ + isFixed: true, + }) setSurfaceShapePattern(roof, roofDisplay.column) drawDirectionArrow(roof) }) diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index b0f902cd..fd8e925d 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -305,7 +305,6 @@ export const usePolygon = () => { } let text = '' - console.log('direction', direction, surfaceCompass, moduleCompass) const compassType = (375 - moduleCompass) / 15