Skip to content

Commit 66d6f1d

Browse files
committed
feat: improve performance on tree changes
1 parent 8a36402 commit 66d6f1d

2 files changed

Lines changed: 12 additions & 17 deletions

File tree

‎next-release-notes-template.md‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
<!--
2-
### Breaking Changes
1+
### Improvements
32

4-
### Features
5-
6-
### Bug Fixes and Improvements
7-
8-
### Other Changes
9-
-->
3+
- Improved runtime performance when tree structures are mutated (#441)

‎packages/core/src/uncontrolledEnvironment/UncontrolledTreeEnvironment.tsx‎

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,16 @@ export const UncontrolledTreeEnvironment = React.forwardRef<
6464
);
6565

6666
useEffect(() => {
67-
const { dispose } = dataProvider.onDidChangeTreeData(changedItemIds => {
68-
dataProvider.getTreeItems(changedItemIds).then(items => {
69-
writeItems(
70-
items
71-
.map(item => ({ [item.index]: item }))
72-
.reduce((a, b) => ({ ...a, ...b }), {})
73-
);
74-
});
75-
});
67+
const { dispose } = dataProvider.onDidChangeTreeData(
68+
async changedItemIds => {
69+
const items = await dataProvider.getTreeItems(changedItemIds);
70+
const itemMap = {};
71+
for (const item of items) {
72+
itemMap[item.index] = item;
73+
}
74+
writeItems(itemMap);
75+
}
76+
);
7677

7778
return dispose;
7879
}, [dataProvider, writeItems]);

0 commit comments

Comments
 (0)