Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 17 additions & 13 deletions web-ui/src/components/reviews/TeamReviews.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -708,27 +708,31 @@ const TeamReviews = ({ onBack, periodId }) => {

// Remove all assignments for this member.
newAssignments = newAssignments.filter(a => a.revieweeId !== memberId);
for(let assignment of assignments) {
if (!newAssignments.find(a => a.id == assignment.id)) {
await removeReviewAssignment(assignment.id, csrf);
}
}

// Add assignments for these reviewers if they don't already exist.
// All objects in the assignments array are for the current review period.
const additional = [];
for (const reviewer of reviewers) {
const exists = newAssignments.some(
a => a.reviewerId === reviewer.id && a.revieweeId === memberId
);
if (!exists) {
newAssignments.push({
reviewPeriodId: periodId,
reviewerId: reviewer.id,
revieweeId: member.id
});
}
additional.push({
reviewPeriodId: periodId,
reviewerId: reviewer.id,
revieweeId: member.id
});
}

const res = await createReviewAssignments(periodId, newAssignments, csrf);
// Create only the new assignments.
let res = await createReviewAssignments(periodId, additional, csrf);
if (res.error) return;

newAssignments = sortMembers(res.payload.data);
setAssignments(newAssignments);
// Get the actual list of assignments back from the server.
res = await getReviewAssignments(periodId, csrf);
newAssignments = res.error ? [] : res.payload.data;
setAssignments(sortMembers(newAssignments));
};

const closeReviewerDialog = () => {
Expand Down