모듈/가대 설정 undo, redo 이상 동작 수정
This commit is contained in:
parent
de5b9f1fb7
commit
37a1c24667
@ -1,5 +1,5 @@
|
|||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'
|
import { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
canvasSettingState,
|
canvasSettingState,
|
||||||
@ -40,12 +40,14 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const roofDisplay = useRecoilValue(roofDisplaySelector)
|
const roofDisplay = useRecoilValue(roofDisplaySelector)
|
||||||
const [moduleSetupSurface, setModuleSetupSurface] = useRecoilState(moduleSetupSurfaceState)
|
const [moduleSetupSurface, setModuleSetupSurface] = useRecoilState(moduleSetupSurfaceState)
|
||||||
|
const resetModuleSetupSurface = useResetRecoilState(moduleSetupSurfaceState)
|
||||||
const { addCanvasMouseEventListener, initEvent, removeMouseEvent, addTargetMouseEventListener } = useEvent()
|
const { addCanvasMouseEventListener, initEvent, removeMouseEvent, addTargetMouseEventListener } = useEvent()
|
||||||
const { swalFire } = useSwal()
|
const { swalFire } = useSwal()
|
||||||
const compasDeg = useRecoilValue(compasDegAtom)
|
const compasDeg = useRecoilValue(compasDegAtom)
|
||||||
const { setSurfaceShapePattern } = useRoofFn()
|
const { setSurfaceShapePattern } = useRoofFn()
|
||||||
const checkedModule = useRecoilValue(checkedModuleState)
|
const checkedModule = useRecoilValue(checkedModuleState)
|
||||||
const [isManualModuleSetup, setIsManualModuleSetup] = useRecoilState(isManualModuleSetupState)
|
const [isManualModuleSetup, setIsManualModuleSetup] = useRecoilState(isManualModuleSetupState)
|
||||||
|
|
||||||
const [isManualModuleLayoutSetup, setIsManualModuleLayoutSetup] = useRecoilState(isManualModuleLayoutSetupState)
|
const [isManualModuleLayoutSetup, setIsManualModuleLayoutSetup] = useRecoilState(isManualModuleLayoutSetupState)
|
||||||
const canvasSetting = useRecoilValue(canvasSettingState)
|
const canvasSetting = useRecoilValue(canvasSettingState)
|
||||||
const moduleSelectionData = useRecoilValue(moduleSelectionDataState)
|
const moduleSelectionData = useRecoilValue(moduleSelectionDataState)
|
||||||
@ -67,6 +69,7 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
initEvent()
|
initEvent()
|
||||||
|
resetModuleSetupSurface()
|
||||||
return () => {
|
return () => {
|
||||||
//수동 설치시 초기화
|
//수동 설치시 초기화
|
||||||
removeMouseEvent('mouse:up')
|
removeMouseEvent('mouse:up')
|
||||||
|
|||||||
@ -69,6 +69,15 @@ function _restoreFromJSON(canvas, snapshot, restoreAtomSnapshot, rebuildCanvasAt
|
|||||||
|
|
||||||
canvas.loadFromJSON(snapshot.canvasJSON, () => {
|
canvas.loadFromJSON(snapshot.canvasJSON, () => {
|
||||||
rebuildCanvasAtoms()
|
rebuildCanvasAtoms()
|
||||||
|
|
||||||
|
// undo/redo 후 모듈 설치영역이 active 인 채로 남으면
|
||||||
|
// 사용자가 다시 클릭하지 않아도 선택된 것처럼 보여 자동 배치 등 부작용 발생.
|
||||||
|
// 활성 객체가 MODULE_SETUP_SURFACE 이면 선택 해제한다.
|
||||||
|
const active = canvas.getActiveObject()
|
||||||
|
if (active && active.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) {
|
||||||
|
canvas.discardActiveObject()
|
||||||
|
}
|
||||||
|
|
||||||
canvas.renderAll()
|
canvas.renderAll()
|
||||||
restoreAtomSnapshot(snapshot.atomSnapshot)
|
restoreAtomSnapshot(snapshot.atomSnapshot)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user