From 790813c103602b6e66adf238727fdcc03f08d8c6 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 21 Nov 2022 23:25:25 +0900 Subject: [PATCH 1/2] Bug: programmatically set size results in different flexGrow #147 --- src/lib/ReflexContainer.js | 5 ++++- src/lib/ReflexElement.js | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/ReflexContainer.js b/src/lib/ReflexContainer.js index c4a5ad7..e61ee49 100644 --- a/src/lib/ReflexContainer.js +++ b/src/lib/ReflexContainer.js @@ -369,6 +369,8 @@ export default class ReflexContainer extends React.Component { this.computeAvailableOffset( splitterIdx, dir * offset) + this.state.isSetPropSize = data.isSetPropSize + this.elements = null if (availableOffset) { @@ -390,6 +392,7 @@ export default class ReflexContainer extends React.Component { // TODO handle exception ... console.log(ex) } + delete this.state.isSetPropSize }) } @@ -595,7 +598,7 @@ export default class ReflexContainer extends React.Component { const newSize = Math.max(size + offset, 0) - const currentFlex = this.state.flexData[idx].flex + const currentFlex = this.state.isSetPropSize ? 0 : this.state.flexData[idx].flex const newFlex = (currentFlex > 0) ? currentFlex * newSize / size diff --git a/src/lib/ReflexElement.js b/src/lib/ReflexElement.js index 95f89e4..40a870b 100644 --- a/src/lib/ReflexElement.js +++ b/src/lib/ReflexElement.js @@ -141,7 +141,8 @@ class ReflexElement extends React.Component { await this.props.events.emit('element.size', { index: this.props.index, size: this.props.size, - direction + direction, + isSetPropSize: true }) } } @@ -200,4 +201,4 @@ export default React.forwardRef((props, ref) => { return ( ) -}) \ No newline at end of file +}) From 4d0bc1961cb03f8d56b51526415a5cd75121f5e7 Mon Sep 17 00:00:00 2001 From: tachbana Date: Fri, 16 Dec 2022 11:27:44 +0900 Subject: [PATCH 2/2] Changes to use separate variable for judgment of size specification --- src/lib/ReflexContainer.js | 7 ++++--- src/lib/ReflexElement.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/ReflexContainer.js b/src/lib/ReflexContainer.js index e61ee49..44d4ed8 100644 --- a/src/lib/ReflexContainer.js +++ b/src/lib/ReflexContainer.js @@ -48,6 +48,7 @@ export default class ReflexContainer extends React.Component { flexData: [] } this.ref = React.createRef() + this.isSetPropSize = false } componentDidMount () { @@ -369,7 +370,7 @@ export default class ReflexContainer extends React.Component { this.computeAvailableOffset( splitterIdx, dir * offset) - this.state.isSetPropSize = data.isSetPropSize + this.isSetPropSize = data.isSetPropSize this.elements = null @@ -392,7 +393,7 @@ export default class ReflexContainer extends React.Component { // TODO handle exception ... console.log(ex) } - delete this.state.isSetPropSize + this.isSetPropSize = false }) } @@ -598,7 +599,7 @@ export default class ReflexContainer extends React.Component { const newSize = Math.max(size + offset, 0) - const currentFlex = this.state.isSetPropSize ? 0 : this.state.flexData[idx].flex + const currentFlex = this.isSetPropSize ? 0 : this.state.flexData[idx].flex const newFlex = (currentFlex > 0) ? currentFlex * newSize / size diff --git a/src/lib/ReflexElement.js b/src/lib/ReflexElement.js index 40a870b..c595c71 100644 --- a/src/lib/ReflexElement.js +++ b/src/lib/ReflexElement.js @@ -201,4 +201,4 @@ export default React.forwardRef((props, ref) => { return ( ) -}) +}) \ No newline at end of file