redo undo시 부모가 있는 object인 경우 부모까지 pop, add
This commit is contained in:
parent
2e48112873
commit
b02ad92fca
@ -138,12 +138,24 @@ export function useCanvas(id) {
|
||||
if (canvas) {
|
||||
if (canvas?._objects.length > 0) {
|
||||
const poppedObject = canvas?._objects.pop()
|
||||
const group = []
|
||||
group.push(poppedObject)
|
||||
|
||||
if (poppedObject.parent || poppedObject.parentId) {
|
||||
canvas
|
||||
?.getObjects()
|
||||
.filter((obj) => obj.parent === poppedObject.parent || obj.parentId === poppedObject.parentId || obj === poppedObject.parent)
|
||||
.forEach((obj) => {
|
||||
group.push(obj)
|
||||
canvas?.remove(obj)
|
||||
})
|
||||
}
|
||||
|
||||
setHistory((prev) => {
|
||||
if (prev === undefined) {
|
||||
return poppedObject ? [poppedObject] : []
|
||||
return poppedObject ? [group] : []
|
||||
}
|
||||
return poppedObject ? [...prev, poppedObject] : prev
|
||||
return poppedObject ? [...prev, group] : prev
|
||||
})
|
||||
canvas?.renderAll()
|
||||
}
|
||||
@ -154,7 +166,13 @@ export function useCanvas(id) {
|
||||
if (canvas && history) {
|
||||
if (history.length > 0) {
|
||||
setIsLocked(true)
|
||||
if (Array.isArray(history[history.length - 1])) {
|
||||
history[history.length - 1].forEach((obj) => {
|
||||
canvas?.add(obj)
|
||||
})
|
||||
} else {
|
||||
canvas?.add(history[history.length - 1])
|
||||
}
|
||||
const newHistory = history.slice(0, -1)
|
||||
setHistory(newHistory)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user