fix event.path in observeDeep - closes #457
This commit is contained in:
parent
0973e0acd4
commit
0678ed1eb5
@ -264,8 +264,8 @@ const getPathTo = (parent, child) => {
|
|||||||
let i = 0
|
let i = 0
|
||||||
let c = /** @type {AbstractType<any>} */ (child._item.parent)._start
|
let c = /** @type {AbstractType<any>} */ (child._item.parent)._start
|
||||||
while (c !== child._item && c !== null) {
|
while (c !== child._item && c !== null) {
|
||||||
if (!c.deleted) {
|
if (!c.deleted && c.countable) {
|
||||||
i++
|
i += c.length
|
||||||
}
|
}
|
||||||
c = c.right
|
c = c.right
|
||||||
}
|
}
|
||||||
|
@ -330,6 +330,29 @@ export const testObserveDeepEventOrder = tc => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct index when computing event.path in observeDeep - https://github.com/yjs/yjs/issues/457
|
||||||
|
*
|
||||||
|
* @param {t.TestCase} _tc
|
||||||
|
*/
|
||||||
|
export const testObservedeepIndexes = _tc => {
|
||||||
|
const doc = new Y.Doc()
|
||||||
|
const map = doc.getMap()
|
||||||
|
// Create a field with the array as value
|
||||||
|
map.set('my-array', new Y.Array())
|
||||||
|
// Fill the array with some strings and our Map
|
||||||
|
map.get('my-array').push(['a', 'b', 'c', new Y.Map()])
|
||||||
|
/**
|
||||||
|
* @type {Array<any>}
|
||||||
|
*/
|
||||||
|
let eventPath = []
|
||||||
|
map.observeDeep((events) => { eventPath = events[0].path })
|
||||||
|
// set a value on the map inside of our array
|
||||||
|
map.get('my-array').get(3).set('hello', 'world')
|
||||||
|
console.log(eventPath)
|
||||||
|
t.compare(eventPath, ['my-array', 3])
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {t.TestCase} tc
|
* @param {t.TestCase} tc
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user