@@ -15,7 +15,9 @@ const ResourceToPhaseNameMap = {
1515 Reviewer : 'Review' ,
1616 Approver : 'Approval' ,
1717 Screener : 'Screening' ,
18- 'Iterative Reviewer' : 'Iterative Review'
18+ 'Iterative Reviewer' : 'Iterative Review' ,
19+ 'Checkpoint Reviewer' : 'Checkpoint Review' ,
20+ 'Checkpoint Screener' : 'Checkpoint Screening'
1921}
2022
2123class ChallengeReviewerField extends Component {
@@ -98,6 +100,10 @@ class ChallengeReviewerField extends Component {
98100 }
99101
100102 componentDidMount ( ) {
103+ const { challenge, challengeResources } = this . props
104+ if ( challenge && challenge . id && challengeResources ) {
105+ this . updateAssignedMembers ( challengeResources , challenge )
106+ }
101107 if ( this . props . challenge . track || this . props . challenge . type ) {
102108 this . loadScorecards ( )
103109 }
@@ -117,26 +123,25 @@ class ChallengeReviewerField extends Component {
117123 const reviewerIndex = { }
118124 reviewersWithPhaseName . forEach ( ( reviewer , index ) => {
119125 if ( ! reviewerIndex [ reviewer . name ] ) {
120- reviewerIndex [ reviewer . name ] = index
126+ reviewerIndex [ reviewer . name ] = [ ]
121127 }
128+ reviewerIndex [ reviewer . name ] . push ( index )
122129 } )
123130
124131 const assignedMembers = { }
125132
126133 challengeResources . forEach ( ( resource ) => {
127- const index = reviewerIndex [ ResourceToPhaseNameMap [ resource . roleName ] ]
134+ const indices = reviewerIndex [ ResourceToPhaseNameMap [ resource . roleName ] ] || [ ]
128135
129- if ( ! assignedMembers [ index ] ) {
130- assignedMembers [ index ] = [ {
136+ // Distribute resources across all reviewers with the same phase name
137+ indices . forEach ( ( index ) => {
138+ if ( ! assignedMembers [ index ] ) {
139+ assignedMembers [ index ] = [ ]
140+ }
141+ assignedMembers [ index ] . push ( {
131142 handle : resource . memberHandle ,
132143 userId : resource . memberId
133- } ]
134- return
135- }
136-
137- assignedMembers [ index ] . push ( {
138- handle : resource . memberHandle ,
139- userId : resource . memberId
144+ } )
140145 } )
141146 } )
142147
@@ -158,7 +163,24 @@ class ChallengeReviewerField extends Component {
158163 }
159164 }
160165
161- if ( challenge && this . doUpdateAssignedMembers ) {
166+ const reviewersChanged = ( ( ) => {
167+ if ( ! challenge || ! prevChallenge ) return false
168+ const currReviewers = challenge . reviewers || [ ]
169+ const prevReviewers = prevChallenge . reviewers || [ ]
170+ if ( currReviewers . length !== prevReviewers . length ) return true
171+ for ( let i = 0 ; i < currReviewers . length ; i ++ ) {
172+ const curr = currReviewers [ i ]
173+ const prev = prevReviewers [ i ]
174+ const { scorecardId : currScorecardId , ...currRest } = curr
175+ const { scorecardId : prevScorecardId , ...prevRest } = prev
176+ if ( JSON . stringify ( currRest ) !== JSON . stringify ( prevRest ) ) {
177+ return true
178+ }
179+ }
180+ return false
181+ } ) ( )
182+
183+ if ( challenge && this . doUpdateAssignedMembers && reviewersChanged ) {
162184 this . updateAssignedMembers ( challengeResources , challenge )
163185 }
164186
0 commit comments