Skip to content

Commit 18f4209

Browse files
authored
Merge pull request #68 from projectstorm/debounce_invalidations
Debounce invalidations
2 parents da553ac + 4ff721f commit 18f4209

File tree

16 files changed

+437
-566
lines changed

16 files changed

+437
-566
lines changed

.changeset/swift-vans-roll.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@projectstorm/react-workspaces-core': minor
3+
---
4+
5+
Add debounce to layout invalidations

demo/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"storybook:build": "storybook build -o .out"
88
},
99
"dependencies": {
10-
"@emotion/styled": "^11.13.0",
10+
"@emotion/styled": "^11.13.5",
1111
"@projectstorm/react-workspaces-behavior-divider-dropzone": "workspace:*",
1212
"@projectstorm/react-workspaces-behavior-panel-dropzone": "workspace:*",
1313
"@projectstorm/react-workspaces-behavior-resize": "workspace:*",
@@ -26,19 +26,19 @@
2626
"@babel/preset-env": "^7.26.0",
2727
"@babel/preset-react": "^7.25.9",
2828
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
29-
"@storybook/addon-essentials": "^8.4.1",
29+
"@storybook/addon-essentials": "^8.4.5",
3030
"@storybook/addons": "^7.6.17",
31-
"@storybook/react": "^8.4.1",
32-
"@storybook/react-webpack5": "^8.4.1",
31+
"@storybook/react": "^8.4.5",
32+
"@storybook/react-webpack5": "^8.4.5",
3333
"@storybook/storybook-deployer": "^2.8.16",
34-
"@storybook/theming": "^8.4.1",
34+
"@storybook/theming": "^8.4.5",
3535
"@types/lodash": "^4.17.13",
36-
"@types/node": "^22.8.6",
36+
"@types/node": "^22.10.0",
3737
"@types/react": "18.3.12",
3838
"@types/react-dom": "^18.3.1",
3939
"react-dom": "18.3.1",
4040
"source-map-loader": "^5.0.0",
41-
"storybook": "^8.4.1",
41+
"storybook": "^8.4.5",
4242
"webpack": "^5.96.1"
4343
}
4444
}

example-project-js/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"dependencies": {
1111
"@projectstorm/react-workspaces-core": "workspace:*",
1212
"@projectstorm/react-workspaces-behavior-resize": "workspace:*",
13-
"@emotion/react": "^11.13.3",
14-
"@emotion/styled": "^11.13.0",
13+
"@emotion/react": "^11.13.5",
14+
"@emotion/styled": "^11.13.5",
1515
"react": "^18.3.1",
1616
"react-dom": "^18.3.1"
1717
},

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
"@babel/core": "^7.26.0",
3636
"@babel/preset-react": "^7.25.9",
3737
"@babel/preset-env": "^7.26.0",
38-
"prettier": "^3.3.3",
39-
"typescript": "^5.6.3",
38+
"prettier": "^3.4.1",
39+
"typescript": "^5.7.2",
4040
"terser-webpack-plugin": "^5.3.10",
41-
"@changesets/cli": "^2.27.9",
41+
"@changesets/cli": "^2.27.10",
4242
"webpack": "^5.96.1",
4343
"webpack-cli": "^5.1.4",
4444
"webpack-node-externals": "^3.0.0"

packages/behavior-divider-dropzone/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
1515
"react": "^18.3.1",
16-
"@emotion/styled": "^11.13.0"
16+
"@emotion/styled": "^11.13.5"
1717
},
1818
"devDependencies": {
1919
"@types/react": "^18.3.12"

packages/behavior-panel-dropzone/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
},
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
15-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
15+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
1616
"@fortawesome/react-fontawesome": "^0.2.2",
17-
"@fortawesome/fontawesome-svg-core": "^6.6.0",
17+
"@fortawesome/fontawesome-svg-core": "^6.7.1",
1818
"react": "^18.3.1",
1919
"lodash": "^4.17.21",
20-
"@emotion/styled": "^11.13.0"
20+
"@emotion/styled": "^11.13.5"
2121
},
2222
"devDependencies": {
2323
"@types/lodash": "^4.17.13",

packages/behavior-resize/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
1515
"react": "^18.3.1",
16-
"@emotion/styled": "^11.13.0"
16+
"@emotion/styled": "^11.13.5"
1717
},
1818
"devDependencies": {
1919
"@types/react": "^18.3.12"

packages/core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
"dependencies": {
1414
"react": "^18.3.1",
1515
"react-dom": "^18.3.1",
16-
"@emotion/styled": "^11.13.0",
17-
"@emotion/react": "^11.13.3",
16+
"@emotion/styled": "^11.13.5",
17+
"@emotion/react": "^11.13.5",
1818
"lodash": "^4.17.21",
1919
"color": "^4.2.3",
20-
"uuid": "^11.0.2"
20+
"uuid": "^11.0.3"
2121
},
2222
"devDependencies": {
2323
"@types/react": "^18.3.12",

packages/core/src/core/WorkspaceEngine.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export class WorkspaceEngine extends BaseObserver<WorkspaceEngineListener> imple
5959
this.rootModelListener?.();
6060
this.rootModelListener = model.registerListener({
6161
layoutInvalidated: () => {
62-
this.invalidateLayout();
62+
this.invalidateLayoutDebounced();
6363
},
6464
dimensionsInvalidated: () => {
6565
this.invalidateDimensionsDebounced();
@@ -78,6 +78,10 @@ export class WorkspaceEngine extends BaseObserver<WorkspaceEngineListener> imple
7878
this.iterateListeners((cb) => cb.layoutInvalidated?.());
7979
}
8080

81+
invalidateLayoutDebounced = _.debounce(() => {
82+
this.invalidateLayout();
83+
}, 200);
84+
8185
invalidateDimensionsDebounced = _.debounce(() => {
8286
this.invalidateDimensions();
8387
}, 200);

packages/defaults/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212
},
1313
"dependencies": {
1414
"react": "^18.3.1",
15-
"@emotion/styled": "^11.13.0",
16-
"@emotion/react": "^11.13.3",
15+
"@emotion/styled": "^11.13.5",
16+
"@emotion/react": "^11.13.5",
1717
"lodash": "^4.17.21",
1818
"@projectstorm/react-workspaces-core": "workspace:*",
1919
"@projectstorm/react-workspaces-model-tabs": "workspace:*",
2020
"@projectstorm/react-workspaces-model-tray": "workspace:*",
2121
"@projectstorm/react-workspaces-model-floating-window": "workspace:*",
22-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
22+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
2323
"@fortawesome/react-fontawesome": "^0.2.2",
24-
"@fortawesome/fontawesome-svg-core": "^6.6.0"
24+
"@fortawesome/fontawesome-svg-core": "^6.7.1"
2525
},
2626
"devDependencies": {
2727
"@types/react": "^18.3.12",

packages/dropzone-plugin-tabs/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
"@projectstorm/react-workspaces-core": "workspace:*",
1616
"@projectstorm/react-workspaces-model-tabs": "workspace:*",
1717
"@projectstorm/react-workspaces-behavior-panel-dropzone": "workspace:*",
18-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
19-
"@fortawesome/fontawesome-svg-core": "^6.6.0"
18+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
19+
"@fortawesome/fontawesome-svg-core": "^6.7.1"
2020
},
2121
"devDependencies": {
2222
"@types/react": "^18.3.12"

packages/dropzone-plugin-tray/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
"@projectstorm/react-workspaces-core": "workspace:*",
1616
"@projectstorm/react-workspaces-model-tray": "workspace:*",
1717
"@projectstorm/react-workspaces-behavior-panel-dropzone": "workspace:*",
18-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
19-
"@fortawesome/fontawesome-svg-core": "^6.6.0"
18+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
19+
"@fortawesome/fontawesome-svg-core": "^6.7.1"
2020
},
2121
"devDependencies": {
2222
"@types/react": "^18.3.12"

packages/model-floating-window/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
},
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
15-
"@fortawesome/free-solid-svg-icons": "^6.6.0",
15+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
1616
"@fortawesome/react-fontawesome": "^0.2.2",
17-
"@fortawesome/fontawesome-svg-core": "^6.6.0",
17+
"@fortawesome/fontawesome-svg-core": "^6.7.1",
1818
"react": "^18.3.1",
19-
"@emotion/styled": "^11.13.0"
19+
"@emotion/styled": "^11.13.5"
2020
},
2121
"devDependencies": {
2222
"@types/react": "^18.3.12"

packages/model-tabs/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
1515
"react": "^18.3.1",
16-
"@emotion/styled": "^11.13.0",
17-
"@emotion/react": "^11.13.3",
16+
"@emotion/styled": "^11.13.5",
17+
"@emotion/react": "^11.13.5",
1818
"lodash": "^4.17.21"
1919
},
2020
"devDependencies": {

packages/model-tray/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"dependencies": {
1414
"@projectstorm/react-workspaces-core": "workspace:*",
1515
"@projectstorm/react-workspaces-model-floating-window": "workspace:*",
16-
"@emotion/styled": "^11.13.0",
16+
"@emotion/styled": "^11.13.5",
1717
"react": "^18.3.1",
1818
"lodash": "^4.17.21"
1919
},

0 commit comments

Comments
 (0)