Merge pull request #1021 from guardicore/fix-master-checkbox-rendering

Fix master checkbox rendering
This commit is contained in:
Mike Salvatore 2021-03-07 13:00:28 -05:00 committed by GitHub
commit ba8acf2a64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 8 deletions

View File

@ -43,7 +43,7 @@ class AdvancedMultiSelect extends React.Component {
infoPaneParams: getDefaultPaneParams(
this.infoPaneRefString,
this.registry,
this.isUnsafeOptionSelected(this.props.value)
this.isUnsafeOptionSelected(props.value)
)
};
}
@ -94,9 +94,11 @@ class AdvancedMultiSelect extends React.Component {
}
setMasterCheckboxState(selectValues) {
this.setState(() => ({
masterCheckboxState: this.getMasterCheckboxState(selectValues)
}));
let newState = this.getMasterCheckboxState(selectValues);
if (newState != this.state.masterCheckboxState) {
this.setState({masterCheckboxState: newState});
}
}
getMasterCheckboxState(selectValues) {
@ -162,11 +164,12 @@ class AdvancedMultiSelect extends React.Component {
render() {
const {
schema,
autofocus,
id,
required,
multiple,
autofocus
required,
schema,
value
} = this.props;
return (
@ -179,7 +182,7 @@ class AdvancedMultiSelect extends React.Component {
<ChildCheckboxContainer id={id} multiple={multiple} required={required}
autoFocus={autofocus} isSafe={this.isSafe}
onPaneClick={this.setPaneInfo} onCheckboxClick={this.onChildCheckboxClick}
selectedValues={this.props.value} enumOptions={this.enumOptions}/>
selectedValues={value} enumOptions={this.enumOptions}/>
<InfoPane title={this.state.infoPaneParams.title}
body={this.state.infoPaneParams.content}
@ -188,6 +191,10 @@ class AdvancedMultiSelect extends React.Component {
</div>
);
}
componentDidUpdate(_prevProps) {
this.setMasterCheckboxState(this.props.value);
}
}
export default AdvancedMultiSelect;