From d55ff00a303ac908c29a238089c6c0103f7c0411 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Tue, 15 Sep 2020 17:05:49 +0300 Subject: [PATCH] feat: add handleUpdate to tree adapter --- .../tree/src/lib/utils/nz-tree-adapter.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 6c66315e69..ebabd201b0 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 @@ -48,7 +48,18 @@ export class TreeAdapter { } handleRemove({ key }: TreeNode) { - this.tree = createTreeFromList(this.list.filter(item => item.id !== key)); + this.updateTreeFromList(this.list.filter(item => item.id !== key)); + } + + handleUpdate({ key, children }: { key: string; children: T[] }) { + // remove current children and update tree + this.updateTreeFromList(this.list.filter(item => item.parentId !== key)); + // add new children and update tree + this.updateTreeFromList(this.list.concat(children)); + } + + updateTreeFromList(list: T[]) { + this.tree = createTreeFromList(list); this.list = createListFromTree(this.tree); } }