지붕형상 설정 시 undo redo 되도록 수정

This commit is contained in:
hyojun.choi 2026-05-07 15:53:08 +09:00
parent 9de3424cdf
commit 77de97eef1

View File

@ -1,6 +1,6 @@
'use client'
import { useContext, useEffect, useState } from 'react'
import { useContext, useEffect, useRef, useState } from 'react'
import { usePathname, useRouter } from 'next/navigation'
import { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'
@ -475,13 +475,19 @@ export function usePlan(params = {}) {
}
}
// usePlan() 인스턴스가 새로 mount 될 때 clearStacks 가 실수로 호출되지 않도록
// 직전 플랜 id 를 ref 로 보관하고, 실제 id 변경이 일어났을 때만 스택을 비운다.
const prevPlanIdRef = useRef(currentCanvasPlan?.id)
useEffect(() => {
setSelectedPlan(currentCanvasPlan)
handleCurrentPlanUrl()
// resetCurrentObject()
resetModuleSetupSurface()
// 플랜 전환 시 이전 플랜의 undo/redo 히스토리는 의미가 없으므로 초기화한다.
// 플랜 ID가 실제로 바뀐 경우에만 undo/redo 히스토리를 초기화한다.
if (prevPlanIdRef.current !== currentCanvasPlan?.id) {
clearStacks()
prevPlanIdRef.current = currentCanvasPlan?.id
}
}, [currentCanvasPlan])
/**