지붕형상 설정 시 undo redo 되도록 수정
This commit is contained in:
parent
9de3424cdf
commit
77de97eef1
@ -1,6 +1,6 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { useContext, useEffect, useState } from 'react'
|
import { useContext, useEffect, useRef, useState } from 'react'
|
||||||
import { usePathname, useRouter } from 'next/navigation'
|
import { usePathname, useRouter } from 'next/navigation'
|
||||||
|
|
||||||
import { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'
|
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(() => {
|
useEffect(() => {
|
||||||
setSelectedPlan(currentCanvasPlan)
|
setSelectedPlan(currentCanvasPlan)
|
||||||
handleCurrentPlanUrl()
|
handleCurrentPlanUrl()
|
||||||
// resetCurrentObject()
|
// resetCurrentObject()
|
||||||
resetModuleSetupSurface()
|
resetModuleSetupSurface()
|
||||||
// 플랜 전환 시 이전 플랜의 undo/redo 히스토리는 의미가 없으므로 초기화한다.
|
// 플랜 ID가 실제로 바뀐 경우에만 undo/redo 히스토리를 초기화한다.
|
||||||
clearStacks()
|
if (prevPlanIdRef.current !== currentCanvasPlan?.id) {
|
||||||
|
clearStacks()
|
||||||
|
prevPlanIdRef.current = currentCanvasPlan?.id
|
||||||
|
}
|
||||||
}, [currentCanvasPlan])
|
}, [currentCanvasPlan])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user