@@ -708,27 +708,31 @@ const TeamReviews = ({ onBack, periodId }) => {
708708
709709 // Remove all assignments for this member.
710710 newAssignments = newAssignments . filter ( a => a . revieweeId !== memberId ) ;
711+ for ( let assignment of assignments ) {
712+ if ( ! newAssignments . find ( a => a . id == assignment . id ) ) {
713+ await removeReviewAssignment ( assignment . id , csrf ) ;
714+ }
715+ }
711716
712717 // Add assignments for these reviewers if they don't already exist.
713718 // All objects in the assignments array are for the current review period.
719+ const additional = [ ] ;
714720 for ( const reviewer of reviewers ) {
715- const exists = newAssignments . some (
716- a => a . reviewerId === reviewer . id && a . revieweeId === memberId
717- ) ;
718- if ( ! exists ) {
719- newAssignments . push ( {
720- reviewPeriodId : periodId ,
721- reviewerId : reviewer . id ,
722- revieweeId : member . id
723- } ) ;
724- }
721+ additional . push ( {
722+ reviewPeriodId : periodId ,
723+ reviewerId : reviewer . id ,
724+ revieweeId : member . id
725+ } ) ;
725726 }
726727
727- const res = await createReviewAssignments ( periodId , newAssignments , csrf ) ;
728+ // Create only the new assignments.
729+ let res = await createReviewAssignments ( periodId , additional , csrf ) ;
728730 if ( res . error ) return ;
729731
730- newAssignments = sortMembers ( res . payload . data ) ;
731- setAssignments ( newAssignments ) ;
732+ // Get the actual list of assignments back from the server.
733+ res = await getReviewAssignments ( periodId , csrf ) ;
734+ newAssignments = res . error ? [ ] : res . payload . data ;
735+ setAssignments ( sortMembers ( newAssignments ) ) ;
732736 } ;
733737
734738 const closeReviewerDialog = ( ) => {
0 commit comments