aboutsummaryrefslogtreecommitdiff
path: root/src/fields/List.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2020-10-06 19:14:06 -0400
committerbobzel <zzzman@gmail.com>2020-10-06 19:14:06 -0400
commitc65ca9da4ccdbb525ca7c4e50e7403cf6b543cbe (patch)
treea253c5589fc605f5138a110c84bc47ba0bedf647 /src/fields/List.ts
parent031e29b1cf14f643f3b52c52f77785e71f011708 (diff)
fixes for undo with multi-users
Diffstat (limited to 'src/fields/List.ts')
-rw-r--r--src/fields/List.ts3
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[]) {