diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index fbf387bb..ce2667fe 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -13,6 +13,7 @@ import { addedRoofsState, roofDisplaySelector, roofMaterialsAtom } from '@/store import { useCommonCode } from '@/hooks/common/useCommonCode' import QSelectBox from '@/components/common/select/QSelectBox' import { globalLocaleStore } from '@/store/localeAtom' +import { useUndoRedo } from '@/hooks/useUndoRedo' import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util' import { usePolygon } from '@/hooks/usePolygon' @@ -52,6 +53,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla /** usePopup에서 closePopup 함수 가져오기 */ const { drawDirectionArrow } = usePolygon() const { setSurfaceShapePattern } = useRoofFn() + const { clearStacks } = useUndoRedo() const canvas = useRecoilValue(canvasState) const [canvasSetting, setCanvasSetting] = useRecoilState(canvasSettingState) const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) @@ -298,6 +300,9 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla /* 저장 후 화면 닫기 */ closePopup(id) await saveCanvas(false) + + // 지붕재 변경 저장 후 undo/redo stack 초기화 + clearStacks() } return ( diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index b604d52d..67bbbd37 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -66,7 +66,7 @@ export function useRoofAllocationSetting(id) { const resetPoints = useResetRecoilState(outerLinePointsState) const [corridorDimension, setCorridorDimension] = useRecoilState(corridorDimensionSelector) const { changeCorridorDimensionText } = useText() - const { saveSnapshot } = useUndoRedo() + const { saveSnapshot, clearStacks } = useUndoRedo() const outlineDisplay = useRecoilValue(outlineDisplaySelector) useEffect(() => { @@ -381,6 +381,9 @@ export function useRoofAllocationSetting(id) { closePopup(id) basicSettingSave() setModuleSelectionData({ ...moduleSelectionData, roofConstructions: newRoofList }) + + // 지붕재 변경 후 undo/redo stack 초기화 + clearStacks() } /**