Prevent InfluxDB Admin reset state of MultiSelectDropdown on props refresh
parent
b999aa87b7
commit
f84a632f54
|
@ -77,6 +77,7 @@ const RoleRow = ({
|
||||||
customClass={classnames(`dropdown-${ROLES_TABLE.colPermissions}`, {
|
customClass={classnames(`dropdown-${ROLES_TABLE.colPermissions}`, {
|
||||||
'admin-table--multi-select-empty': !permissions.length,
|
'admin-table--multi-select-empty': !permissions.length,
|
||||||
})}
|
})}
|
||||||
|
resetStateOnReceiveProps={false}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
</td>
|
</td>
|
||||||
|
@ -92,6 +93,7 @@ const RoleRow = ({
|
||||||
customClass={classnames(`dropdown-${ROLES_TABLE.colUsers}`, {
|
customClass={classnames(`dropdown-${ROLES_TABLE.colUsers}`, {
|
||||||
'admin-table--multi-select-empty': !users.length,
|
'admin-table--multi-select-empty': !users.length,
|
||||||
})}
|
})}
|
||||||
|
resetStateOnReceiveProps={false}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -96,6 +96,7 @@ const UserRow = ({
|
||||||
customClass={classnames(`dropdown-${USERS_TABLE.colRoles}`, {
|
customClass={classnames(`dropdown-${USERS_TABLE.colRoles}`, {
|
||||||
'admin-table--multi-select-empty': !roles.length,
|
'admin-table--multi-select-empty': !roles.length,
|
||||||
})}
|
})}
|
||||||
|
resetStateOnReceiveProps={false}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
) : null}
|
) : null}
|
||||||
|
@ -113,6 +114,7 @@ const UserRow = ({
|
||||||
customClass={classnames(`dropdown-${USERS_TABLE.colPermissions}`, {
|
customClass={classnames(`dropdown-${USERS_TABLE.colPermissions}`, {
|
||||||
'admin-table--multi-select-empty': !permissions.length,
|
'admin-table--multi-select-empty': !permissions.length,
|
||||||
})}
|
})}
|
||||||
|
resetStateOnReceiveProps={false}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -40,7 +40,10 @@ class MultiSelectDropdown extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
if (!_.isEqual(this.props.selectedItems, nextProps.selectedItems)) {
|
if (
|
||||||
|
!this.props.resetStateOnReceiveProps ||
|
||||||
|
!_.isEqual(this.props.selectedItems, nextProps.selectedItems)
|
||||||
|
) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,6 +164,7 @@ MultiSelectDropdown.propTypes = {
|
||||||
customClass: string,
|
customClass: string,
|
||||||
iconName: string,
|
iconName: string,
|
||||||
isApplyShown: bool,
|
isApplyShown: bool,
|
||||||
|
resetStateOnReceiveProps: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSelectDropdown.defaultProps = {
|
MultiSelectDropdown.defaultProps = {
|
||||||
|
@ -169,6 +173,7 @@ MultiSelectDropdown.defaultProps = {
|
||||||
customClass: 'dropdown-160',
|
customClass: 'dropdown-160',
|
||||||
selectedItems: [],
|
selectedItems: [],
|
||||||
isApplyShown: true,
|
isApplyShown: true,
|
||||||
|
resetStateOnReceiveProps: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default OnClickOutside(MultiSelectDropdown)
|
export default OnClickOutside(MultiSelectDropdown)
|
||||||
|
|
Loading…
Reference in New Issue