Skip to content

Commit 51fdfa6

Browse files
authored
Merge pull request #66 from projectstorm/layout_invalidation_fixes
Layout invalidation fixes
2 parents b54451e + 5f17139 commit 51fdfa6

File tree

17 files changed

+1212
-1704
lines changed

17 files changed

+1212
-1704
lines changed

.changeset/good-fans-beg.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': patch
3+
---
4+
5+
Fix redraw issue with resize widgets in some cases when adding a model and a race condition occurs

demo/package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@
2323
"typeface-open-sans": "^1.1.13"
2424
},
2525
"devDependencies": {
26-
"@babel/preset-env": "^7.25.4",
27-
"@babel/preset-react": "^7.24.7",
26+
"@babel/preset-env": "^7.26.0",
27+
"@babel/preset-react": "^7.25.9",
2828
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
29-
"@storybook/addon-essentials": "^8.3.3",
29+
"@storybook/addon-essentials": "^8.4.1",
3030
"@storybook/addons": "^7.6.17",
31-
"@storybook/react": "^8.3.3",
32-
"@storybook/react-webpack5": "^8.3.3",
31+
"@storybook/react": "^8.4.1",
32+
"@storybook/react-webpack5": "^8.4.1",
3333
"@storybook/storybook-deployer": "^2.8.16",
34-
"@storybook/theming": "^8.3.3",
35-
"@types/lodash": "^4.17.9",
36-
"@types/node": "^22.7.1",
37-
"@types/react": "18.3.9",
38-
"@types/react-dom": "^18.3.0",
34+
"@storybook/theming": "^8.4.1",
35+
"@types/lodash": "^4.17.13",
36+
"@types/node": "^22.8.6",
37+
"@types/react": "18.3.12",
38+
"@types/react-dom": "^18.3.1",
3939
"react-dom": "18.3.1",
4040
"source-map-loader": "^5.0.0",
41-
"storybook": "^8.3.3",
42-
"webpack": "^5.95.0"
41+
"storybook": "^8.4.1",
42+
"webpack": "^5.96.1"
4343
}
4444
}

example-project-js/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
"react-dom": "^18.3.1"
1717
},
1818
"devDependencies": {
19-
"html-webpack-plugin": "^5.6.0",
20-
"@types/react": "^18.3.9",
21-
"@types/react-dom": "^18.3.0",
19+
"html-webpack-plugin": "^5.6.3",
20+
"@types/react": "^18.3.12",
21+
"@types/react-dom": "^18.3.1",
2222
"babel-loader": "^9.2.1",
23-
"@babel/core": "^7.25.2",
24-
"@babel/preset-env": "^7.25.4",
25-
"@babel/preset-react": "^7.24.7",
26-
"webpack": "^5.95.0",
23+
"@babel/core": "^7.26.0",
24+
"@babel/preset-env": "^7.26.0",
25+
"@babel/preset-react": "^7.25.9",
26+
"webpack": "^5.96.1",
2727
"webpack-cli": "^5.1.4",
2828
"webpack-dev-server": "^5.1.0"
2929
}

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@
3232
"devDependencies": {
3333
"babel-loader": "^9.2.1",
3434
"source-map-loader": "^5.0.0",
35-
"@babel/core": "^7.25.2",
36-
"@babel/preset-react": "^7.24.7",
37-
"@babel/preset-env": "^7.25.4",
35+
"@babel/core": "^7.26.0",
36+
"@babel/preset-react": "^7.25.9",
37+
"@babel/preset-env": "^7.26.0",
3838
"prettier": "^3.3.3",
39-
"typescript": "^5.6.2",
39+
"typescript": "^5.6.3",
4040
"terser-webpack-plugin": "^5.3.10",
41-
"@changesets/cli": "^2.27.8",
42-
"webpack": "^5.95.0",
41+
"@changesets/cli": "^2.27.9",
42+
"webpack": "^5.96.1",
4343
"webpack-cli": "^5.1.4",
4444
"webpack-node-externals": "^3.0.0"
4545
}

packages/behavior-divider-dropzone/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
"@emotion/styled": "^11.13.0"
1717
},
1818
"devDependencies": {
19-
"@types/react": "^18.3.9"
19+
"@types/react": "^18.3.12"
2020
}
2121
}

packages/behavior-panel-dropzone/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@emotion/styled": "^11.13.0"
2121
},
2222
"devDependencies": {
23-
"@types/lodash": "^4.17.9",
24-
"@types/react": "^18.3.9"
23+
"@types/lodash": "^4.17.13",
24+
"@types/react": "^18.3.12"
2525
}
2626
}

packages/behavior-resize/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
"@emotion/styled": "^11.13.0"
1717
},
1818
"devDependencies": {
19-
"@types/react": "^18.3.9"
19+
"@types/react": "^18.3.12"
2020
}
2121
}

packages/core/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
"@emotion/react": "^11.13.3",
1818
"lodash": "^4.17.21",
1919
"color": "^4.2.3",
20-
"uuid": "^10.0.0"
20+
"uuid": "^11.0.2"
2121
},
2222
"devDependencies": {
23-
"@types/react": "^18.3.9",
24-
"@types/react-dom": "^18.3.0",
25-
"@types/lodash": "^4.17.9",
23+
"@types/react": "^18.3.12",
24+
"@types/react-dom": "^18.3.1",
25+
"@types/lodash": "^4.17.13",
2626
"@types/uuid": "^10.0.0"
2727
}
2828
}

packages/core/src/entities/node/WorkspaceNodeModel.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,14 @@ export class WorkspaceNodeModel<
121121
addModel(model: WorkspaceModel, position: number = null): this {
122122
super.addModel(model, position);
123123
this.recomputeDivisions();
124+
this.invalidateLayout();
124125
return this;
125126
}
126127

127128
removeModel(model: WorkspaceModel): this {
128129
super.removeModel(model);
129130
this.recomputeDivisions();
131+
this.invalidateLayout();
130132
return this;
131133
}
132134

packages/core/src/widgets/primitives/DimensionTrackingWidget.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import styled from '@emotion/styled';
33
import { useEffect } from 'react';
44
import { useForceUpdate } from '../hooks/useForceUpdate';
55
import { DimensionContainer, IDimension } from '../../core/dimensions/DimensionContainer';
6+
import * as _ from 'lodash';
67

78
export interface DimensionTrackingWidgetProps {
89
dimension: DimensionContainer;
@@ -14,6 +15,9 @@ export interface DimensionTrackingWidgetProps {
1415
export const DimensionTrackingWidget: React.FC<React.PropsWithChildren<DimensionTrackingWidgetProps>> = (props) => {
1516
const forceUpdate = useForceUpdate();
1617
useEffect(() => {
18+
_.defer(() => {
19+
forceUpdate();
20+
});
1721
return props.dimension.registerListener({
1822
updated: () => {
1923
forceUpdate();

packages/defaults/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"@fortawesome/fontawesome-svg-core": "^6.6.0"
2525
},
2626
"devDependencies": {
27-
"@types/react": "^18.3.9",
28-
"@types/lodash": "^4.17.9"
27+
"@types/react": "^18.3.12",
28+
"@types/lodash": "^4.17.13"
2929
}
3030
}

packages/dropzone-plugin-tabs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
"@fortawesome/fontawesome-svg-core": "^6.6.0"
2020
},
2121
"devDependencies": {
22-
"@types/react": "^18.3.9"
22+
"@types/react": "^18.3.12"
2323
}
2424
}

packages/dropzone-plugin-tray/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
"@fortawesome/fontawesome-svg-core": "^6.6.0"
2020
},
2121
"devDependencies": {
22-
"@types/react": "^18.3.9"
22+
"@types/react": "^18.3.12"
2323
}
2424
}

packages/model-floating-window/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
"@emotion/styled": "^11.13.0"
2020
},
2121
"devDependencies": {
22-
"@types/react": "^18.3.9"
22+
"@types/react": "^18.3.12"
2323
}
2424
}

packages/model-tabs/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"lodash": "^4.17.21"
1919
},
2020
"devDependencies": {
21-
"@types/react": "^18.3.9",
22-
"@types/lodash": "^4.17.9"
21+
"@types/react": "^18.3.12",
22+
"@types/lodash": "^4.17.13"
2323
}
2424
}

packages/model-tray/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"lodash": "^4.17.21"
1919
},
2020
"devDependencies": {
21-
"@types/react": "^18.3.9",
22-
"@types/lodash": "^4.17.9"
21+
"@types/react": "^18.3.12",
22+
"@types/lodash": "^4.17.13"
2323
}
2424
}

0 commit comments

Comments
 (0)