@@ -3,18 +3,18 @@ import React, { useContext, useEffect, useState } from 'react';
3
3
import { AppContext } from '../../../context/AppContext' ;
4
4
import {
5
5
SET_ROLES ,
6
- SET_USER_ROLES ,
6
+ SET_MEMBER_ROLES ,
7
7
UPDATE_TOAST
8
8
} from '../../../context/actions' ;
9
9
import {
10
- addUserToRole ,
10
+ addMemberToRole ,
11
11
addNewRole ,
12
- removeUserFromRole ,
12
+ removeMemberFromRole ,
13
13
updateRole
14
14
} from '../../../api/roles' ;
15
15
import {
16
16
selectCanEditMemberRolesPermission ,
17
- noPermission ,
17
+ noPermission , selectMemberRoles , selectCsrfToken , selectRoles , selectMemberProfiles ,
18
18
} from '../../../context/selectors' ;
19
19
import RoleUserCards from './RoleUserCards' ;
20
20
@@ -52,8 +52,11 @@ import './Roles.css';
52
52
53
53
const Roles = ( ) => {
54
54
const { state, dispatch } = useContext ( AppContext ) ;
55
- // roles here is all possible roles, not the selected roles.
56
- const { csrf, memberProfiles, roles, userRoles } = state ;
55
+
56
+ const csrf = selectCsrfToken ( state ) ;
57
+ const memberProfiles = selectMemberProfiles ( state ) ;
58
+ const roles = selectRoles ( state ) ; // all possible roles, not the selected roles.
59
+ const memberRoles = selectMemberRoles ( state ) ;
57
60
58
61
const [ showAddUser , setShowAddUser ] = useState ( false ) ;
59
62
const [ showEditRole , setShowEditRole ] = useState ( false ) ;
@@ -97,25 +100,25 @@ const Roles = () => {
97
100
}
98
101
99
102
const newRoleToMemberMap = { } ;
100
- for ( const userRole of userRoles || [ ] ) {
103
+ for ( const memberRole of memberRoles || [ ] ) {
101
104
const role = roles . find (
102
- role => role . id === userRole ?. memberRoleId ?. roleId
105
+ role => role . id === memberRole ?. memberRoleId ?. roleId
103
106
) ;
104
107
if ( role ) {
105
108
let memberList = newRoleToMemberMap [ role . role ] ;
106
109
if ( ! memberList ) {
107
110
memberList = newRoleToMemberMap [ role . role ] = [ ] ;
108
111
}
109
- if ( memberMap [ userRole ?. memberRoleId ?. memberId ] !== undefined ) {
112
+ if ( memberMap [ memberRole ?. memberRoleId ?. memberId ] !== undefined ) {
110
113
memberList . push ( {
111
- ...memberMap [ userRole ?. memberRoleId ?. memberId ] ,
114
+ ...memberMap [ memberRole ?. memberRoleId ?. memberId ] ,
112
115
roleId : role . id
113
116
} ) ;
114
117
}
115
118
}
116
119
}
117
120
setRoleToMemberMap ( newRoleToMemberMap ) ;
118
- } , [ userRoles , memberProfiles , roles ] ) ;
121
+ } , [ memberRoles , memberProfiles , roles ] ) ;
119
122
120
123
const getRoleStats = role => {
121
124
let members = roleToMemberMap [ role ] ;
@@ -125,20 +128,20 @@ const Roles = () => {
125
128
const removeFromRole = async ( member , role ) => {
126
129
const members = roleToMemberMap [ role ] ;
127
130
const { roleId } = members . find ( m => member . id === m . id ) ;
128
- let res = await removeUserFromRole ( roleId , member . id , csrf ) ;
131
+ let res = await removeMemberFromRole ( roleId , member . id , csrf ) ;
129
132
let data =
130
133
res . payload && res . payload . status === 200 && ! res . error
131
134
? res . payload
132
135
: null ;
133
136
if ( data ) {
134
137
// TODO: Remove role from map....
135
- const filtered = userRoles . filter (
136
- userRole =>
137
- userRole ?. memberRoleId ?. roleId !== roleId ||
138
- userRole ?. memberRoleId ?. memberId !== member . id
138
+ const filtered = memberRoles . filter (
139
+ memberRole =>
140
+ memberRole ?. memberRoleId ?. roleId !== roleId ||
141
+ memberRole ?. memberRoleId ?. memberId !== member . id
139
142
) ;
140
143
dispatch ( {
141
- type : SET_USER_ROLES ,
144
+ type : SET_MEMBER_ROLES ,
142
145
payload : filtered
143
146
} ) ;
144
147
window . snackDispatch ( {
@@ -153,14 +156,14 @@ const Roles = () => {
153
156
154
157
const addToRole = async member => {
155
158
const role = roles . find ( role => role . role === currentRole . role ) ;
156
- let res = await addUserToRole ( role . id , member . id , csrf ) ;
159
+ let res = await addMemberToRole ( role . id , member . id , csrf ) ;
157
160
let data =
158
161
res . payload && res . payload . data && ! res . error ? res . payload . data : null ;
159
162
if ( data ) {
160
163
setShowAddUser ( false ) ;
161
164
dispatch ( {
162
- type : SET_USER_ROLES ,
163
- payload : [ ...userRoles , data ]
165
+ type : SET_MEMBER_ROLES ,
166
+ payload : [ ...memberRoles , data ]
164
167
} ) ;
165
168
window . snackDispatch ( {
166
169
type : UPDATE_TOAST ,
0 commit comments