diff options
author | bobzel <zzzman@gmail.com> | 2020-10-06 19:14:06 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2020-10-06 19:14:06 -0400 |
commit | c65ca9da4ccdbb525ca7c4e50e7403cf6b543cbe (patch) | |
tree | a253c5589fc605f5138a110c84bc47ba0bedf647 /src/fields/List.ts | |
parent | 031e29b1cf14f643f3b52c52f77785e71f011708 (diff) |
fixes for undo with multi-users
Diffstat (limited to 'src/fields/List.ts')
-rw-r--r-- | src/fields/List.ts | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/fields/List.ts b/src/fields/List.ts index d9bd54673..ceb538b2d 100644 --- a/src/fields/List.ts +++ b/src/fields/List.ts @@ -66,6 +66,7 @@ const listHandlers: any = { this[Self].__realFields(); // coerce retrieving entire array items = items.map(toObjectField); const list = this[Self]; + const removed = list.__fields.filter((item: any, i: number) => i >= start && i < start + deleteCount); for (let i = 0; i < items.length; i++) { const item = items[i]; //TODO Error checking to make sure parent doesn't already exist @@ -76,7 +77,7 @@ const listHandlers: any = { } } const res = list.__fields.splice(start, deleteCount, ...items); - this[Update](); + this[Update](items.length === 0 && deleteCount ? { op: "$remFromSet", items: removed } : undefined); return res.map(toRealField); }), unshift(...items: any[]) { |