diff --git a/client/src/components/user-admin/EditUsers.jsx b/client/src/components/user-admin/EditUsers.jsx index 894a3628c..825ee23dd 100644 --- a/client/src/components/user-admin/EditUsers.jsx +++ b/client/src/components/user-admin/EditUsers.jsx @@ -1,56 +1,79 @@ import React, { useEffect, useState } from 'react'; +import { + Grid, + FormGroup, + FormControlLabel, + Switch, + Button, + Typography, + Container, + List, + ListItem, + ListItemText, + Select, + MenuItem, + FormControl, + InputLabel, +} from '@mui/material'; import '../../sass/UserAdmin.scss'; -import { FormGroup, FormControlLabel, Switch } from '@mui/material'; // child of UserAdmin. Displays form to update users. -const EditUsers = ({ userToEdit, backToSearch, updateUserDb, projects, updateUserActiveStatus, updateUserAccessLevel }) => { +const EditUsers = ({ + userToEdit, + backToSearch, + updateUserDb, + projects, + updateUserActiveStatus, + updateUserAccessLevel, +}) => { const [userManagedProjects, setUserManagedProjects] = useState([]); // The projects that the selected user is assigned const [projectValue, setProjectValue] = useState(''); // State and handler for form in EditUsers const [isActive, setIsActive] = useState(userToEdit.isActive); - const [isAdmin, setIsAdmin] = useState(userToEdit.accessLevel === "admin"); + const [isAdmin, setIsAdmin] = useState(userToEdit.accessLevel === 'admin'); // Boolean to check if the current user is the super admin - const isSuperAdmin = userToEdit.accessLevel === "superadmin"; + const isSuperAdmin = userToEdit.accessLevel === 'superadmin'; - // Prepare data for display const userName = `${userToEdit.name?.firstName} ${userToEdit.name?.lastName}`; const userEmail = userToEdit.email; const userProjects = userManagedProjects || []; - // Filter active projects for dropdown const activeProjects = Object.values(projects) .filter((project) => project.projectStatus === 'Active') .sort((a, b) => a.name?.localeCompare(b.name)) .map((p) => [p._id, p.name]); - // add user projects to state useEffect(() => { setUserManagedProjects(userToEdit.managedProjects); }, [userToEdit]); - // Prepare user projects for display by connecting the ID with the project name const userProjectsToDisplay = activeProjects.filter((item) => userProjects.includes(item[0]) ); - // Handle the add project form submit const onSubmit = (event) => { event.preventDefault(); - if (!isSuperAdmin && projectValue.length > 0 && projectValue !== 'default' && !userManagedProjects.includes(projectValue)) { + if ( + !isSuperAdmin && + projectValue.length > 0 && + projectValue !== 'default' && + !userManagedProjects.includes(projectValue) + ) { const newProjects = [...userManagedProjects, projectValue]; updateUserDb(userToEdit, newProjects); setUserManagedProjects(newProjects); - setProjectValue([]); + setProjectValue(''); } else { - setProjectValue([]); + setProjectValue(''); } }; - // Remove projects from db const handleRemoveProject = (projectToRemove) => { if (!isSuperAdmin && userManagedProjects.length > 0) { - const newProjects = userManagedProjects.filter((p) => p !== projectToRemove); + const newProjects = userManagedProjects.filter( + (p) => p !== projectToRemove + ); updateUserDb(userToEdit, newProjects); setUserManagedProjects(newProjects); } @@ -65,102 +88,105 @@ const EditUsers = ({ userToEdit, backToSearch, updateUserDb, projects, updateUse const handleSetAccessLevel = () => { if (!isSuperAdmin) { - const newAccessLevel = isAdmin ? "user" : "admin"; + const newAccessLevel = isAdmin ? 'user' : 'admin'; setIsAdmin(!isAdmin); updateUserAccessLevel(userToEdit, newAccessLevel); } }; return ( -