From 505520813a91445bffd9e94b6ae6c6592537c07c Mon Sep 17 00:00:00 2001 From: Alexander Cerutti Date: Sun, 24 Oct 2021 16:29:41 +0200 Subject: [PATCH] FieldsArray: fixed splice method to check incoming items and register their keys in pool; --- src/FieldsArray.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/FieldsArray.ts b/src/FieldsArray.ts index 3b3104d..de6ae8d 100644 --- a/src/FieldsArray.ts +++ b/src/FieldsArray.ts @@ -95,7 +95,17 @@ export default class FieldsArray extends Array { this[sharedKeysPoolSymbol].delete(item.key), ); - return super.splice(start, deleteCount, ...items); + let validItems = items ?? []; + + if (validItems.length) { + validItems = Schemas.filterValid(Schemas.Field, items); + + for (let i = 0; i < validItems.length; i++) { + this[sharedKeysPoolSymbol].add(validItems[i].key); + } + } + + return super.splice(start, deleteCount, ...validItems); } get length(): number {