From 9ff89a7c29ed6102767b3e0e9785c40ed4fc21ee Mon Sep 17 00:00:00 2001 From: Sonja Happ Date: Fri, 27 Mar 2020 16:38:57 +0100 Subject: [PATCH] fix for checkbox edit, can now be checked an unchecked --- .../edit-widget-checkbox-control.js | 33 +++++++++++-------- .../edit-widget-control-creator.js | 12 +++---- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/widget/edit-widget/edit-widget-checkbox-control.js b/src/widget/edit-widget/edit-widget-checkbox-control.js index 2f1eb87..8a4113f 100644 --- a/src/widget/edit-widget/edit-widget-checkbox-control.js +++ b/src/widget/edit-widget/edit-widget-checkbox-control.js @@ -22,31 +22,36 @@ class EditWidgetCheckboxControl extends React.Component { constructor(props) { super(props); - this.state = { - widget: props.widget - }; - } - - static getDerivedStateFromProps(props, state){ - return{ - widget: props.widget - }; - } - - render() { let parts = this.props.controlId.split('.'); let isCustomProperty = true; if (parts.length ===1){ isCustomProperty = false; } + let isChecked; + if (isCustomProperty){ + isChecked = this.props.widget[parts[0]][parts[1]] + } else{ + isChecked = this.props.widget[this.props.controlId] + } + this.state = { + isChecked + }; + } + + handleCheckboxChange(e){ + this.props.handleChange({target: { id: this.props.controlId, value: !this.state.isChecked} }) + } + + render() { return this.props.handleChange(e)}> + defaultChecked={this.state.isChecked} + onChange={e => this.handleCheckboxChange(e)}> ; diff --git a/src/widget/edit-widget/edit-widget-control-creator.js b/src/widget/edit-widget/edit-widget-control-creator.js index 7951ab2..ac64bbc 100644 --- a/src/widget/edit-widget/edit-widget-control-creator.js +++ b/src/widget/edit-widget/edit-widget-control-creator.js @@ -55,7 +55,7 @@ export default function CreateControls(widgetType = null, widget = null, session handleChange(e)} />, handleChange(e)} />, handleChange(e)} />, - handleChange(e)} /> + handleChange(e)} /> ); break; case 'Lamp': @@ -77,7 +77,7 @@ export default function CreateControls(widgetType = null, widget = null, session case 'Table': DialogControls.push( handleChange(e)} />, - handleChange(e)} /> + handleChange(e)} /> ); break; case 'Image': @@ -92,7 +92,7 @@ export default function CreateControls(widgetType = null, widget = null, session DialogControls.push( handleChange(e)} />, handleChange(e)} />, - handleChange(e)} />, + handleChange(e)} />, handleChange(e)} />, handleChange(e)} /> ); @@ -110,8 +110,8 @@ export default function CreateControls(widgetType = null, widget = null, session handleChange(e)} />, handleChange(e)} />, handleChange(e)} />, - handleChange(e)} />, - handleChange(e)} />, + handleChange(e)} />, + handleChange(e)} />, handleChange(e)} />, handleChange(e)} />, handleChange(e)} /> @@ -121,7 +121,7 @@ export default function CreateControls(widgetType = null, widget = null, session DialogControls.push( handleChange(e)} />, handleChange(e)} />, - handleChange(e)} />, + handleChange(e)} />, handleChange(e)} />, handleChange(e)} /> );