This commit is contained in:
Kevin Jahns 2023-08-24 13:52:38 +02:00
parent 2e3ba0f81f
commit 97c09a6cca

View File

@ -15,6 +15,7 @@ import {
import * as time from 'lib0/time' import * as time from 'lib0/time'
import * as array from 'lib0/array' import * as array from 'lib0/array'
import * as logging from 'lib0/logging'
import { Observable } from 'lib0/observable' import { Observable } from 'lib0/observable'
export class StackItem { export class StackItem {
@ -169,6 +170,7 @@ export class UndoManager extends Observable {
* @type {Array<AbstractType<any>>} * @type {Array<AbstractType<any>>}
*/ */
this.scope = [] this.scope = []
this.doc = doc
this.addToScope(typeScope) this.addToScope(typeScope)
this.deleteFilter = deleteFilter this.deleteFilter = deleteFilter
trackedOrigins.add(this) trackedOrigins.add(this)
@ -189,7 +191,6 @@ export class UndoManager extends Observable {
*/ */
this.undoing = false this.undoing = false
this.redoing = false this.redoing = false
this.doc = doc
this.lastChange = 0 this.lastChange = 0
this.ignoreRemoteMapChanges = ignoreRemoteMapChanges this.ignoreRemoteMapChanges = ignoreRemoteMapChanges
this.captureTimeout = captureTimeout this.captureTimeout = captureTimeout
@ -263,6 +264,7 @@ export class UndoManager extends Observable {
ytypes = array.isArray(ytypes) ? ytypes : [ytypes] ytypes = array.isArray(ytypes) ? ytypes : [ytypes]
ytypes.forEach(ytype => { ytypes.forEach(ytype => {
if (this.scope.every(yt => yt !== ytype)) { if (this.scope.every(yt => yt !== ytype)) {
if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc') // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509
this.scope.push(ytype) this.scope.push(ytype)
} }
}) })