Prevent InfluxDB Admin reset state of MultiSelectDropdown on props refresh

pull/3048/head
Jared Scheib 2018-03-23 18:10:49 -07:00
parent b999aa87b7
commit f84a632f54
3 changed files with 10 additions and 1 deletions

View File

@ -77,6 +77,7 @@ const RoleRow = ({
customClass={classnames(`dropdown-${ROLES_TABLE.colPermissions}`, {
'admin-table--multi-select-empty': !permissions.length,
})}
resetStateOnReceiveProps={false}
/>
) : null}
</td>
@ -92,6 +93,7 @@ const RoleRow = ({
customClass={classnames(`dropdown-${ROLES_TABLE.colUsers}`, {
'admin-table--multi-select-empty': !users.length,
})}
resetStateOnReceiveProps={false}
/>
) : null}
</td>

View File

@ -96,6 +96,7 @@ const UserRow = ({
customClass={classnames(`dropdown-${USERS_TABLE.colRoles}`, {
'admin-table--multi-select-empty': !roles.length,
})}
resetStateOnReceiveProps={false}
/>
</td>
) : null}
@ -113,6 +114,7 @@ const UserRow = ({
customClass={classnames(`dropdown-${USERS_TABLE.colPermissions}`, {
'admin-table--multi-select-empty': !permissions.length,
})}
resetStateOnReceiveProps={false}
/>
) : null}
</td>

View File

@ -40,7 +40,10 @@ class MultiSelectDropdown extends Component {
}
componentWillReceiveProps(nextProps) {
if (!_.isEqual(this.props.selectedItems, nextProps.selectedItems)) {
if (
!this.props.resetStateOnReceiveProps ||
!_.isEqual(this.props.selectedItems, nextProps.selectedItems)
) {
return
}
@ -161,6 +164,7 @@ MultiSelectDropdown.propTypes = {
customClass: string,
iconName: string,
isApplyShown: bool,
resetStateOnReceiveProps: bool,
}
MultiSelectDropdown.defaultProps = {
@ -169,6 +173,7 @@ MultiSelectDropdown.defaultProps = {
customClass: 'dropdown-160',
selectedItems: [],
isApplyShown: true,
resetStateOnReceiveProps: true,
}
export default OnClickOutside(MultiSelectDropdown)