Skip to content

Commit 601e388

Browse files
committed
fix: remember a new treeWalker provided to the component to avoid further re-computation
1 parent a5116ad commit 601e388

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

__tests__/FixedSizeTree.spec.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,20 @@ describe('FixedSizeTree', () => {
184184
expect(treeWalkerSpy).not.toHaveBeenCalled();
185185
});
186186

187+
it('remembers a new treeWalker to avoid further re-computation if treeWalker is the same', () => {
188+
treeWalkerSpy = jest.fn(treeWalker);
189+
190+
component.setProps({
191+
treeWalker: treeWalkerSpy,
192+
});
193+
194+
component.setProps({
195+
treeWalker: treeWalkerSpy,
196+
});
197+
198+
expect(treeWalkerSpy).toHaveBeenCalledTimes(1);
199+
});
200+
187201
describe('component instance', () => {
188202
let treeInstance: FixedSizeTree<ExtendedData>;
189203

__tests__/VariableSizeTree.spec.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,20 @@ describe('VariableSizeTree', () => {
194194
expect(treeWalkerSpy).not.toHaveBeenCalled();
195195
});
196196

197+
it('remembers a new treeWalker to avoid further re-computation if treeWalker is the same', () => {
198+
treeWalkerSpy = jest.fn(treeWalker);
199+
200+
component.setProps({
201+
treeWalker: treeWalkerSpy,
202+
});
203+
204+
component.setProps({
205+
treeWalker: treeWalkerSpy,
206+
});
207+
208+
expect(treeWalkerSpy).toHaveBeenCalledTimes(1);
209+
});
210+
197211
describe('component instance', () => {
198212
let treeInstance: VariableSizeTree<ExtendedData>;
199213

src/Tree.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ class Tree<
280280
return {
281281
component,
282282
treeData,
283+
treeWalker,
283284
...(treeWalker !== oldTreeWalker || !order
284285
? computeTree(props, state, {refreshNodes: true})
285286
: null),

0 commit comments

Comments
 (0)