Skip to content

Commit 21ff213

Browse files
authored
Merge pull request #2031 from jng34/alphabetizeProjMembers
Sort Project Members by first name
2 parents 6dfdcd9 + a77ff4b commit 21ff213

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

VRMS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 7042af0f43f0b034977c7f64c613e9d8b7199edb

client/src/components/manageProjects/editPMs/editProjectMembers.jsx

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ const EditProjectMembers = ({ projectToEdit }) => {
2929
const [projectMembers, setProjectMembers] = useState([]);
3030
const [renderedUsers, setRenderedUsers] = useState([]);
3131

32+
// Sort users alphabetically by first name
33+
const sortUsers = (userArr) => [...userArr].sort((a, b) => a.name.firstName.localeCompare(b.name.firstName));
34+
3235
useEffect(() => {
3336
// Create an array of projectMembers (users) from project's managedByUsers (user IDs)
3437
const fetchProjectMembers = async () => {
@@ -41,8 +44,9 @@ const EditProjectMembers = ({ projectToEdit }) => {
4144
return user;
4245
})
4346
);
44-
setProjectMembers(members);
45-
setRenderedUsers(members);
47+
const sortedMembers = sortUsers(members);
48+
setProjectMembers(sortedMembers);
49+
setRenderedUsers(sortedMembers);
4650
} catch (err) {
4751
console.log(err)
4852
}
@@ -123,7 +127,7 @@ const EditProjectMembers = ({ projectToEdit }) => {
123127

124128
setToggleSelect(true);
125129
if (!toggleSelect) {
126-
setRenderedUsers((prevUsers) => [...prevUsers, addedUser]); // Add user to project's managedByUsers array
130+
setRenderedUsers((prevUsers) => sortUsers([...prevUsers, addedUser])); // Add user to project's managedByUsers array
127131
setChangesMade(true); // Set changes made to true
128132
}
129133
// Confirmation message disappears after 1.5 seconds
@@ -175,7 +179,21 @@ const EditProjectMembers = ({ projectToEdit }) => {
175179
{/* Display error message */}
176180
{error && (<Typography color="red">{error}</Typography>)}
177181
{/* Display project members */}
178-
<ProjectMembersList projectId={projectToEdit._id} projectMembers={projectMembers} editMode={editMode} setChangesMade={setChangesMade} closeConfirmModal={closeConfirmModal} setCloseConfirmModal={setCloseConfirmModal} setEditMode={setEditMode} renderedUsers={renderedUsers} setRenderedUsers={setRenderedUsers} isLoading={isLoading} setEmail={setEmail} setIsLoading={setIsLoading} />
182+
<ProjectMembersList
183+
projectId={projectToEdit._id}
184+
projectMembers={projectMembers}
185+
editMode={editMode}
186+
setChangesMade={setChangesMade}
187+
closeConfirmModal={closeConfirmModal}
188+
setCloseConfirmModal={setCloseConfirmModal}
189+
setEditMode={setEditMode}
190+
renderedUsers={renderedUsers}
191+
setRenderedUsers={setRenderedUsers}
192+
sortUsers={sortUsers}
193+
isLoading={isLoading}
194+
setEmail={setEmail}
195+
setIsLoading={setIsLoading}
196+
/>
179197
</TitledBox>
180198
</Box>
181199
)

client/src/components/manageProjects/editPMs/projectMembersList.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const userApiService = new UserApiService();
2020
const projectApiService = new ProjectApiService();
2121

2222

23-
const ProjectMembersList = ({ projectId, projectMembers, renderedUsers, setRenderedUsers, editMode, closeConfirmModal, setChangesMade, setCloseConfirmModal, setEditMode, isLoading, setEmail, setIsLoading }) => {
23+
const ProjectMembersList = ({ projectId, projectMembers, renderedUsers, setRenderedUsers, editMode, closeConfirmModal, setChangesMade, setCloseConfirmModal, setEditMode, sortUsers, isLoading, setEmail, setIsLoading }) => {
2424
const [openModal, setOpenModal] = useState(false);
2525
const [removeConfirmModal, setRemoveConfirmModal] = useState(false);
2626
const [removeId, setRemoveId] = useState("");
@@ -118,7 +118,8 @@ const ProjectMembersList = ({ projectId, projectMembers, renderedUsers, setRende
118118
setChangesMade(true);
119119
// Remove user from renderedUsers state to update UI
120120
const updatedUsers = renderedUsers.filter(user => user._id !== removeId);
121-
setRenderedUsers(updatedUsers);
121+
const sortedUsers = sortUsers(updatedUsers);
122+
setRenderedUsers(sortedUsers);
122123
// Show confirmation modal
123124
setRemoveConfirmModal(true);
124125
setOpenModal(false);

0 commit comments

Comments
 (0)