From 6ebe0850ec5ebd15aaf6296feabaa0a595d126a6 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 11 Sep 2020 18:04:23 +0300 Subject: [PATCH] fix: remove node and its children in TreeAdapter --- .../components/tree/src/lib/utils/nz-tree-adapter.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/components/tree/src/lib/utils/nz-tree-adapter.ts b/npm/ng-packs/packages/components/tree/src/lib/utils/nz-tree-adapter.ts index 5d042602e2..6c66315e69 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/utils/nz-tree-adapter.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/utils/nz-tree-adapter.ts @@ -41,17 +41,15 @@ export class TreeAdapter { return this.tree; } - handleDrop(node: TreeNode) { - const { key, parentNode } = node; + handleDrop({ key, parentNode }: TreeNode) { const index = this.list.findIndex(({ id }) => id === key); this.list[index].parentId = parentNode ? parentNode.key : null; this.tree = createTreeFromList(this.list); } - handleRemove(node: TreeNode) { - const { key, parentNode } = node; - this.list = this.list.filter(({ id, parentId }) => id !== key && parentId !== key); - this.tree = createTreeFromList(this.list); + handleRemove({ key }: TreeNode) { + this.tree = createTreeFromList(this.list.filter(item => item.id !== key)); + this.list = createListFromTree(this.tree); } } @@ -66,6 +64,7 @@ function createTreeFromList(list: T[]): TreeNode[] { const node = map.get(row.id); if (parentId) { const parent = map.get(parentId); + if (!parent) return; parent.children.push(node); parent.isLeaf = false; } else {