Skip to content

Commit 2fff077

Browse files
committed
fix: reset row height on each re-computation
1 parent 7e317bf commit 2fff077

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

src/FixedSizeTree.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ export class FixedSizeTree<T extends FixedSizeNodeData = NodeData> extends Tree<
7777
return (
7878
<FixedSizeList
7979
{...rest}
80-
itemData={this.state}
8180
itemCount={this.state.order!.length}
81+
itemData={this.state}
8282
ref={this.list}
8383
>
8484
{rowComponent!}

src/Tree.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
ListProps,
1313
VariableSizeList,
1414
} from 'react-window';
15+
import {DefaultTreeProps, DefaultTreeState} from './utils';
1516

1617
export type NodeData = Readonly<{
1718
/**
@@ -261,14 +262,14 @@ class Tree<
261262
>,
262263
TListComponent extends FixedSizeList | VariableSizeList
263264
> extends PureComponent<TProps, TState> {
264-
public static defaultProps: Partial<TreeProps<any, any>> = {
265+
public static defaultProps: Partial<DefaultTreeProps> = {
265266
rowComponent: Row,
266267
};
267268

268269
public static getDerivedStateFromProps(
269-
props: TreeProps<any, any>,
270-
state: TreeState<any, any, any, any>,
271-
): Partial<TreeState<any, any, any, any>> {
270+
props: DefaultTreeProps,
271+
state: DefaultTreeState,
272+
): Partial<DefaultTreeState> {
272273
const {children: component, itemData: treeData, treeWalker} = props;
273274
const {computeTree, order, treeWalker: oldTreeWalker} = state;
274275

src/VariableSizeTree.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ export class VariableSizeTree<T extends VariableSizeNodeData> extends Tree<
138138

139139
public recomputeTree(options?: VariableSizeUpdateOptions): Promise<void> {
140140
return super.recomputeTree(options).then(() => {
141-
if (options?.useDefaultHeight) {
142-
this.list.current?.resetAfterIndex(0, true);
143-
}
141+
this.list.current?.resetAfterIndex(0, true);
144142
});
145143
}
146144

@@ -150,8 +148,8 @@ export class VariableSizeTree<T extends VariableSizeNodeData> extends Tree<
150148
return (
151149
<VariableSizeList
152150
{...rest}
153-
itemData={this.state}
154151
itemCount={this.state.order!.length}
152+
itemData={this.state}
155153
// eslint-disable-next-line @typescript-eslint/unbound-method
156154
itemSize={itemSize ?? this.getItemSize}
157155
ref={this.list}

src/utils.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,29 @@ import {
33
NodeData,
44
NodeRecord,
55
TreeCreatorOptions,
6+
TreeProps,
67
TreeState,
78
UpdateOptions,
89
} from './Tree';
910

11+
export type DefaultTreeProps = TreeProps<
12+
NodeComponentProps<NodeData>,
13+
NodeData
14+
>;
15+
16+
export type DefaultTreeState = TreeState<
17+
NodeComponentProps<NodeData>,
18+
NodeRecord<NodeData>,
19+
UpdateOptions,
20+
NodeData
21+
>;
22+
1023
export type DefaultTreeCreatorOptions = TreeCreatorOptions<
1124
NodeComponentProps<NodeData>,
1225
NodeRecord<NodeData>,
1326
UpdateOptions,
1427
NodeData,
15-
TreeState<
16-
NodeComponentProps<NodeData>,
17-
NodeRecord<NodeData>,
18-
UpdateOptions,
19-
NodeData
20-
>
28+
DefaultTreeState
2129
>;
2230

2331
export const identity = <T>(value: T): T => value;

0 commit comments

Comments
 (0)