diff options
author | bobzel <zzzman@gmail.com> | 2023-05-10 09:56:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-10 09:56:37 -0400 |
commit | 07c89fcd7af89a657abf705ecc78d337dbf387ed (patch) | |
tree | 3002fded93d420c0926c9bf04c49b6f98c1b5985 /src/fields/List.ts | |
parent | 719da9462f02fd3afda9b0b65de19de9405ab4fc (diff) | |
parent | b9d00178df75e1052bf26964bea37dcd0021ba63 (diff) |
Merge pull request #170 from brown-dash/james-server-stats
James - remFromList fix
Diffstat (limited to 'src/fields/List.ts')
-rw-r--r-- | src/fields/List.ts | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/fields/List.ts b/src/fields/List.ts index e33627be5..dfd24cf7a 100644 --- a/src/fields/List.ts +++ b/src/fields/List.ts @@ -77,10 +77,16 @@ const listHandlers: any = { item[OnUpdate] = updateFunction(list, i + start, item, this); } } + let hintArray: {val : any, index : number}[] = []; + for(let i = start; i < start + deleteCount; i++) { + hintArray.push({val : list.__fields[i], index : i}); + } const res = list.__fields.splice(start, deleteCount, ...items); + // the hint object sends the starting index of the slice and the number + // of elements to delete. this[Update]( items.length === 0 && deleteCount - ? { op: '$remFromSet', items: removed, length: list.__fields.length } + ? { op: '$remFromSet', items: removed, hint : { start : start, deleteCount : deleteCount }, length: list.__fields.length } : items.length && !deleteCount && start === list.__fields.length ? { op: '$addToSet', items, length: list.__fields.length } : undefined |