diff --git a/src/Components/MyAvatar/index.js b/src/Components/MyAvatar/index.js
index 485d1e2..54981ab 100644
--- a/src/Components/MyAvatar/index.js
+++ b/src/Components/MyAvatar/index.js
@@ -10,53 +10,32 @@ export function MyAvatar({
allUsers,
userId,
}) {
- const MyDefaultAvatar = () => {
- if (tooltip) {
- return (
-
- } />
-
- );
- }
-
- return } />;
- };
-
- if (avatar === undefined || avatar === null || avatar === "") {
- if (allUsers !== undefined && userId !== undefined) {
+ if (!avatar) {
+ if (allUsers && userId) {
const user = allUsers.find((u) => u.Id === userId);
-
- if (user === undefined) return ;
-
- avatar = user.Avatar;
- tooltipTitle = user.Username;
- } else {
- return ;
+ if (user) {
+ avatar = user.Avatar;
+ tooltipTitle = user.Username;
+ }
}
}
- const MyAvat = () => {
- if (avatar === "") return ;
+ const avatarContent = avatar ? (
+
+ ) : (
+ } />
+ );
- return (
-
- );
- };
-
- if (tooltip) {
- return (
-
- <>
-
- >
-
- );
- }
-
- return ;
+ return tooltip ? (
+
+ {avatarContent}
+
+ ) : (
+ avatarContent
+ );
}
export function MyUserAvatar({ avatar, size = "default" }) {
diff --git a/src/Contexts/AdminAreaRolesContext.js b/src/Contexts/AdminAreaRolesContext.js
index af0e813..28a5e66 100644
--- a/src/Contexts/AdminAreaRolesContext.js
+++ b/src/Contexts/AdminAreaRolesContext.js
@@ -12,6 +12,7 @@ export const useAdminAreaRolesContext = () => useContext(AdminAreaRolesContext);
export function AdminAreaRolesProvider({ children }) {
const [roles, setRoles] = useState([]);
const [rolesPermissions, setRolesPermissions] = useState([]);
+ const [users, setUsers] = useState([]); // { Id, RoleId }
return (
{children}
diff --git a/src/Contexts/AppContext.js b/src/Contexts/AppContext.js
index 832fd0f..19f33a7 100644
--- a/src/Contexts/AppContext.js
+++ b/src/Contexts/AppContext.js
@@ -14,7 +14,8 @@ export function AppProvider({ children }) {
const userId = useRef(""); // used for some conditions in webSocket message handler
const [userPermissions, setUserPermissions] = useState([]);
- const [users, setUsers] = useState([]); // TODO: realy need this?
+ // used for avatars and the tooltip for the avatar
+ const [users, setUsers] = useState([]); // { Id, Username, Avatar}
return (
({ ...arr, Sessions: body }));
-
- //userProfileContext.setUserProfile((arr) => ({ ...arr, Sessions: body }));
-
userProfileContext.setSessions(body);
break;
case ReceivedMessagesCommands.UpdateAllUsersUserAvatar:
- /*setAllUsers((arr) => {
- const newArr = [...arr];
-
- newArr[arr.findIndex((arr1) => arr1.Id === body.UserId)].Avatar =
- body.Avatar;
-
- return newArr;
- });*/
-
if (appContext.userId.current === body.UserId) {
sideBarContext.setAvatar(body.Avatar);
-
- /*
- userProfileContext.setUserProfile((user) => ({
- ...user,
- avatar: body.Avatar,
- })); */
}
usersContext.setUsers((arr) => {
@@ -242,15 +223,17 @@ export function handleWebSocketMessage(
return newArr;
});
- /*
appContext.setUsers((arr) => {
const newArr = [...arr];
- newArr[arr.findIndex((arr1) => arr1.Id === body.UserId)].Avatar =
- body.Avatar;
+ const arrIndex = arr.findIndex((arr1) => arr1.Id === body.UserId);
+
+ if (arrIndex !== -1) {
+ newArr[arrIndex].Avatar = body.Avatar;
+ }
return newArr;
- }); */
+ });
break;
/*case ReceivedMessagesCommands.NewScanner:
setScanners((arr) => [...arr, body]);
@@ -353,8 +336,6 @@ export function handleWebSocketMessage(
newInputs[body.parameterName].data = body.data;
}
- //newInputs[body.parameterName].value = body.value;
-
return newInputs;
});
} else {
@@ -472,6 +453,18 @@ export function handleWebSocketMessage(
return newArr;
});
+
+ appContext.setUsers((arr) => {
+ const newArr = [...arr];
+
+ const arrIndex = arr.findIndex((user) => user.Id === body.UserId);
+
+ if (arrIndex !== -1) {
+ newArr[arrIndex].Username = body.Changes.Username;
+ }
+
+ return newArr;
+ });
}
if (body.Changes.Email !== undefined) {
@@ -642,19 +635,19 @@ export function handleWebSocketMessage(
appContext.setUserPermissions(() =>
body.Permissions === null ? [] : body.Permissions
);
-
- /*setUser((user) => {
- const updatedUser = { ...user };
-
- if (body.Permissions === null) {
- updatedUser.Permissions = [];
- } else {
- updatedUser.Permissions = body.Permissions;
- }
-
- return updatedUser;
- }); */
}
+
+ adminAreaRolesContext.setUsers((arr) => {
+ const newArr = [...arr];
+
+ const arrIndex = arr.findIndex((user) => user.Id === body.UserId);
+
+ if (arrIndex !== -1) {
+ newArr[arrIndex].RoleId = body.RoleId;
+ }
+
+ return newArr;
+ });
break;
case ReceivedMessagesCommands.RolePermissionsUpdated:
if (
@@ -715,6 +708,15 @@ export function handleWebSocketMessage(
Deactivated: body.Deactivated,
},
]);
+
+ appContext.setUsers((arr) => [
+ ...arr,
+ {
+ Id: body.Id,
+ Username: body.Username,
+ Avatar: "",
+ },
+ ]);
break;
case ReceivedMessagesCommands.AllUsersUserDeleted:
usersContext.setUsers((arr) => {
@@ -725,6 +727,14 @@ export function handleWebSocketMessage(
return newArr;
});
+ appContext.setUsers((arr) => {
+ let newArr = [...arr];
+
+ newArr = newArr.filter((user) => user.Id !== body.UserId);
+
+ return newArr;
+ });
+
/*
if (body.ScannerId !== "") {
setScanners((arr) => {
@@ -752,20 +762,7 @@ export function handleWebSocketMessage(
});
break;
case ReceivedMessagesCommands.NewUserApiKeyCreated:
- /*userProfileContext.setUserProfile((user) => ({
- ...user,
- ApiKeys: [...user.ApiKeys, body],
- })); */
-
userProfileContext.setApiKeys((arr) => [...arr, body]);
-
- /*setUser((user) => {
- const updatedUser = { ...user };
-
- updatedUser.ApiKeys.push(body);
-
- return updatedUser;
- });*/
break;
case ReceivedMessagesCommands.DeletedUserApiKey:
userProfileContext.setApiKeys((arr) =>
diff --git a/src/Pages/AdminArea/Roles/index.js b/src/Pages/AdminArea/Roles/index.js
index 0dd9ee9..bc8c251 100644
--- a/src/Pages/AdminArea/Roles/index.js
+++ b/src/Pages/AdminArea/Roles/index.js
@@ -121,6 +121,7 @@ export default function AdminAreaRoles() {
myFetch("/adminarea/roles", "GET").then((data) => {
adminAreaRolesContext.setRoles(data.Roles);
adminAreaRolesContext.setRolesPermissions(data.RolesPermissions);
+ adminAreaRolesContext.setUsers(data.Users);
});
}, []);
@@ -354,7 +355,9 @@ function Role({
};
const getUsersInRole = () => {
- return appContext.users.filter((user) => user.RoleId === role.Id);
+ return adminAreaRolesContext.users.filter(
+ (user) => user.RoleId === role.Id
+ );
};
const UserAvatarsInRole = () => {
@@ -364,13 +367,15 @@ function Role({
let avatars = [];
usersInRole.forEach((user) => {
+ const userInAppContext = appContext.users.find((u) => u.Id === user.Id);
+
avatars.push(
);
});
diff --git a/src/index.js b/src/index.js
index 2f17896..612c0bc 100644
--- a/src/index.js
+++ b/src/index.js
@@ -19,7 +19,7 @@ const Loading = () => {
// TODO: Undo this
/*
- J A N E X
+ J A N N E X
*/