diff options
author | bobzel <zzzman@gmail.com> | 2020-10-10 12:10:48 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2020-10-10 12:10:48 -0400 |
commit | f3d04b73a53d7680092ce925fceede4f910df5bb (patch) | |
tree | f5b790ae556d2bdaeaa23c4cd0494c9a2b2e2cf1 /src/fields/List.ts | |
parent | ae8dafadcc0c6cea1ac087f17ac84bd302fca39e (diff) |
fixes to issues with updating interactively whe groups change. fixes for multiple rapid modifications to list field where values would be overwrriten when sever sendBack stale information. fixes to list.splice() where deleting nothing but adding something didn't result in an addToSet.
Diffstat (limited to 'src/fields/List.ts')
-rw-r--r-- | src/fields/List.ts | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/fields/List.ts b/src/fields/List.ts index ceb538b2d..a0cbebaf5 100644 --- a/src/fields/List.ts +++ b/src/fields/List.ts @@ -43,7 +43,7 @@ const listHandlers: any = { } } const res = list.__fields.push(...items); - this[Update]({ op: "$addToSet", items }); + this[Update]({ op: "$addToSet", items, length: length + items.length }); return res; }), reverse() { @@ -77,7 +77,8 @@ const listHandlers: any = { } } const res = list.__fields.splice(start, deleteCount, ...items); - this[Update](items.length === 0 && deleteCount ? { op: "$remFromSet", items: removed } : undefined); + this[Update](items.length === 0 && deleteCount ? { op: "$remFromSet", items: removed, length: list.__fields.length } : + items.length && !deleteCount ? { op: "$addToSet", items, length: list.__fields.length } : undefined); return res.map(toRealField); }), unshift(...items: any[]) { |