Skip to content

Commit daaa3cb

Browse files
authored
Merge pull request #7132 from Scrum/master
fix(tree-base): grouping showing duplicate rows
2 parents bc72131 + cf7a5bc commit daaa3cb

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

packages/tree-base/src/js/tree-base.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1086,6 +1086,7 @@
10861086
*/
10871087
createTree: function( grid, renderableRows ) {
10881088
var currentLevel = -1,
1089+
parentsCache = {},
10891090
parents = [],
10901091
currentState;
10911092

@@ -1116,16 +1117,31 @@
11161117
}
11171118
}
11181119

1120+
// If row header as parent exists in parentsCache
1121+
if (
1122+
typeof row.treeLevel !== 'undefined' &&
1123+
row.treeLevel !== null &&
1124+
row.treeLevel >= 0 &&
1125+
parentsCache.hasOwnProperty(row.uid)
1126+
) {
1127+
parents.push(parentsCache[row.uid]);
1128+
}
1129+
11191130
// aggregate if this is a leaf node
11201131
if ( ( typeof(row.treeLevel) === 'undefined' || row.treeLevel === null || row.treeLevel < 0 ) && row.visible ) {
11211132
service.aggregate( grid, row, parents );
11221133
}
11231134

11241135
// add this node to the tree
1125-
service.addOrUseNode(grid, row, parents, aggregations);
1136+
if (!parentsCache.hasOwnProperty(row.uid)) {
1137+
service.addOrUseNode(grid, row, parents, aggregations);
1138+
}
11261139

11271140
if ( typeof(row.treeLevel) !== 'undefined' && row.treeLevel !== null && row.treeLevel >= 0 ) {
1128-
parents.push(row);
1141+
if (!parentsCache.hasOwnProperty(row.uid)) {
1142+
parentsCache[row.uid] = row;
1143+
parents.push(row);
1144+
}
11291145
currentLevel++;
11301146
currentState = service.setCurrentState(parents);
11311147
}

0 commit comments

Comments
 (0)