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 */