Skip to content

Commit b4c3f9b

Browse files
committed
refactor: simplify & reduce bundle size
1 parent 333f2fc commit b4c3f9b

File tree

7 files changed

+463
-487
lines changed

7 files changed

+463
-487
lines changed

.babelrc.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ module.exports = (api) => ({
1313
...(isLib
1414
? []
1515
: [
16-
[
17-
require('babel-plugin-transform-async-to-promises'),
18-
{hoist: true, inlineHelpers: true},
19-
],
2016
[
2117
require('@babel/plugin-transform-runtime'),
2218
{

.eslintrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"jest": true
1313
},
1414
"rules": {
15-
"guard-for-in": "off",
16-
"react/sort-comp": "off"
15+
"@typescript-eslint/promise-function-async": "off",
16+
"guard-for-in": "off"
1717
}
1818
}

package-lock.json

Lines changed: 436 additions & 458 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,39 +53,38 @@
5353
"homepage": "https://github.com/Lodin/react-vtree#readme",
5454
"devDependencies": {
5555
"@babel/cli": "^7.10.5",
56-
"@babel/core": "^7.10.5",
56+
"@babel/core": "^7.11.0",
5757
"@babel/plugin-proposal-class-properties": "^7.10.4",
5858
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
59-
"@babel/plugin-proposal-object-rest-spread": "^7.10.4",
60-
"@babel/plugin-proposal-optional-chaining": "^7.10.4",
61-
"@babel/plugin-transform-runtime": "^7.10.5",
62-
"@babel/preset-env": "^7.10.4",
59+
"@babel/plugin-proposal-object-rest-spread": "^7.11.0",
60+
"@babel/plugin-proposal-optional-chaining": "^7.11.0",
61+
"@babel/plugin-transform-runtime": "^7.11.0",
62+
"@babel/preset-env": "^7.11.0",
6363
"@babel/preset-react": "^7.10.4",
6464
"@babel/preset-typescript": "^7.10.4",
6565
"@storybook/addon-knobs": "^5.3.19",
6666
"@storybook/addon-options": "^5.3.19",
6767
"@storybook/react": "^5.3.19",
6868
"@types/classnames": "^2.2.10",
6969
"@types/enzyme": "^3.10.5",
70-
"@types/jest": "^26.0.7",
71-
"@types/react": "^16.9.43",
70+
"@types/jest": "^26.0.8",
71+
"@types/react": "^16.9.44",
7272
"@types/react-dom": "^16.9.8",
7373
"@types/react-virtualized-auto-sizer": "^1.0.0",
7474
"@types/react-window": "^1.8.2",
75-
"babel-jest": "^26.2.1",
75+
"babel-jest": "^26.2.2",
7676
"babel-loader": "^8.1.0",
77-
"babel-plugin-transform-async-to-promises": "^0.8.15",
7877
"codecov": "^3.7.2",
7978
"cross-env": "^7.0.2",
8079
"cssnano": "^4.1.10",
8180
"enzyme": "^3.11.0",
8281
"enzyme-adapter-react-16": "^1.15.2",
83-
"eslint": "^7.5.0",
84-
"eslint-config-poetez": "git+https://github.com/Lodin/eslint-config-poetez.git#fix/small-improvements",
82+
"eslint": "^7.6.0",
83+
"eslint-config-poetez": "^1.0.0",
8584
"eslint-config-prettier": "^6.11.0",
8685
"eslint-plugin-prettier": "^3.1.4",
8786
"husky": "^4.2.5",
88-
"jest": "^26.2.1",
87+
"jest": "^26.2.2",
8988
"jest-enzyme": "^7.1.2",
9089
"lint-staged": "^10.2.11",
9190
"npm-run-all": "^4.1.5",
@@ -105,6 +104,6 @@
105104
"react-window": "^1.8.5"
106105
},
107106
"dependencies": {
108-
"@babel/runtime": "^7.10.5"
107+
"@babel/runtime": "^7.11.0"
109108
}
110109
}

src/Tree.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ class Tree<
294294
} as TState;
295295
}
296296

297-
public async recomputeTree(options?: TUpdateOptions): Promise<void> {
297+
public recomputeTree(options?: TUpdateOptions): Promise<void> {
298298
return new Promise((resolve) => {
299299
this.setState<never>(
300300
(prevState) => prevState.computeTree(this.props, prevState, options),

src/VariableSizeTree.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, {ReactNode} from 'react';
22
import {VariableSizeList, VariableSizeListProps} from 'react-window';
33
import Tree, {
44
createTreeComputer,
@@ -11,10 +11,11 @@ import Tree, {
1111
} from './Tree';
1212
import {shouldUpdateRecords, updateRecord, updateRecordOnWalk} from './utils';
1313

14-
export type VariableSizeNodeData = {
14+
export type VariableSizeNodeData = Readonly<{
1515
/** Default node height. Can be used only with VariableSizeTree */
16-
readonly defaultHeight: number;
17-
} & NodeData;
16+
defaultHeight: number;
17+
}> &
18+
NodeData;
1819

1920
export type VariableSizeNodeComponentProps<
2021
T extends VariableSizeNodeData
@@ -71,9 +72,10 @@ const computeTree = createTreeComputer<
7172
record.height = height;
7273
resetAfterId(record.data.id, shouldForceUpdate);
7374
},
74-
async toggle(): Promise<void> {
75+
toggle(): Promise<void> {
7576
record.isOpen = !record.isOpen;
76-
await recomputeTree({
77+
78+
return recomputeTree({
7779
refreshNodes: record.isOpen,
7880
useDefaultHeight: true,
7981
});
@@ -130,7 +132,7 @@ export class VariableSizeTree<T extends VariableSizeNodeData> extends Tree<
130132
);
131133
}
132134

133-
public render(): React.ReactNode {
135+
public render(): ReactNode {
134136
const {children, itemSize, rowComponent, treeWalker, ...rest} = this.props;
135137

136138
return (

src/utils.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ export const createRecord: DefaultTreeCreatorOptions['createRecord'] = (
2929
const record = {
3030
data,
3131
isOpen: data.isOpenByDefault,
32-
async toggle(): Promise<void> {
32+
toggle(): Promise<void> {
3333
record.isOpen = !record.isOpen;
34-
await recomputeTree({refreshNodes: record.isOpen});
34+
35+
return recomputeTree({refreshNodes: record.isOpen});
3536
},
3637
};
3738

0 commit comments

Comments
 (0)