From f63e25336b4cab70810949fedceaa1487d25fc19 Mon Sep 17 00:00:00 2001 From: Daniel Kostro Date: Fri, 8 Sep 2017 13:43:42 +0200 Subject: [PATCH] fix(ui): make GroupEditor a pure component Otherwise update notification will appear even when other groups are updated --- src/client/components/GroupEditor.js | 133 ++++++++++++++------------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/src/client/components/GroupEditor.js b/src/client/components/GroupEditor.js index 80e262d1..26764f83 100644 --- a/src/client/components/GroupEditor.js +++ b/src/client/components/GroupEditor.js @@ -1,80 +1,83 @@ -import React, {PropTypes} from 'react'; +import React, {PropTypes, PureComponent} from 'react'; import GroupDataEditor from './GroupDataEditor'; import EditableTextField from './EditableTextField'; import Ephemere from './Ephemere'; -const GroupEditor = ({group, addValueToGroup, removeValueFromGroup, removeGroup, setLdapGroupProperties, syncLdapGroup}) => { - return ( -
-
-

- {group.name}   - - -

-
-
- {group.groupType === 'ldap' ? ( -
- setLdapGroupProperties(group.name, {DN: value})} - /> - setLdapGroupProperties(group.name, {filter: value})} - /> -
- ) : null} -
-
-
- addValueToGroup(group.name, 'owners', value)} - removeValue={(value) => removeValueFromGroup(group.name, 'owners', value)} +class GroupEditor extends PureComponent { + render() { + const {group, addValueToGroup, removeValueFromGroup, removeGroup, setLdapGroupProperties, syncLdapGroup} = this.props; + return ( +
+
+

+ {group.name}   + + +

+
+
+ {group.groupType === 'ldap' ? ( +
+ setLdapGroupProperties(group.name, {DN: value})} /> -
-
- addValueToGroup(group.name, 'users', value)} - removeValue={(value) => removeValueFromGroup(group.name, 'users', value)} + setLdapGroupProperties(group.name, {filter: value})} />
-
- addValueToGroup(group.name, 'rights', value)} - removeValue={(value) => removeValueFromGroup(group.name, 'rights', value)} - /> + ) : null} +
+
+
+ addValueToGroup(group.name, 'owners', value)} + removeValue={(value) => removeValueFromGroup(group.name, 'owners', value)} + /> +
+
+ addValueToGroup(group.name, 'users', value)} + removeValue={(value) => removeValueFromGroup(group.name, 'users', value)} + /> +
+
+ addValueToGroup(group.name, 'rights', value)} + removeValue={(value) => removeValueFromGroup(group.name, 'rights', value)} + /> +
-
- - {group.error ?
{group.error}
: null } - {group.success ?
{group.success}
: null } -
+ + {group.error ?
{group.error}
: null } + {group.success ?
{group.success}
: null } +
+
-
- ); -}; + ); + } +} GroupEditor.propTypes = { group: PropTypes.object.isRequired,