@@ -3,13 +3,14 @@ import PropTypes from 'prop-types'
33import { connect } from 'react-redux'
44import cn from 'classnames'
55import { PrimaryButton , OutlineButton } from '../../Buttons'
6- import { REVIEW_OPPORTUNITY_TYPE_LABELS , REVIEW_OPPORTUNITY_TYPES , VALIDATION_VALUE_TYPE , MARATHON_TYPE_ID , DES_TRACK_ID } from '../../../config/constants'
6+ import { REVIEW_OPPORTUNITY_TYPE_LABELS , REVIEW_OPPORTUNITY_TYPES , VALIDATION_VALUE_TYPE , MARATHON_TYPE_ID , DES_TRACK_ID , CHALLENGE_PRIZE_TYPE } from '../../../config/constants'
77import { loadScorecards , loadDefaultReviewers , loadWorkflows , replaceResourceInRole , createResource , deleteResource } from '../../../actions/challenges'
88import styles from './ChallengeReviewer-Field.module.scss'
99import { validateValue } from '../../../util/input-check'
1010import AssignedMemberField from '../AssignedMember-Field'
1111import { getResourceRoleByName } from '../../../util/tc'
1212import { isEqual } from 'lodash'
13+ import { getPrizeType } from '../../../util/prize'
1314
1415const ResourceToPhaseNameMap = {
1516 Reviewer : 'Review' ,
@@ -959,7 +960,8 @@ class ChallengeReviewerField extends Component {
959960 }
960961
961962 getFirstPlacePrizeValue ( challenge ) {
962- const placementPrizeSet = challenge . prizeSets . find ( set => set . type === 'PLACEMENT' )
963+ const prizeSets = challenge . prizeSets || [ ]
964+ const placementPrizeSet = prizeSets . find ( set => set . type === 'PLACEMENT' )
963965 if ( placementPrizeSet && placementPrizeSet . prizes && placementPrizeSet . prizes [ 0 ] && placementPrizeSet . prizes [ 0 ] . value ) {
964966 return placementPrizeSet . prizes [ 0 ] . value
965967 }
@@ -971,20 +973,23 @@ class ChallengeReviewerField extends Component {
971973 const { error } = this . state
972974 const { scorecards = [ ] , defaultReviewers = [ ] , workflows = [ ] } = metadata
973975 const reviewers = challenge . reviewers || [ ]
974- const firstPlacePrize = this . getFirstPlacePrizeValue ( challenge )
976+ const prizeType = getPrizeType ( challenge . prizeSets )
977+ const firstPlacePrize = prizeType === CHALLENGE_PRIZE_TYPE . POINT ? 0 : this . getFirstPlacePrizeValue ( challenge )
975978 const estimatedSubmissionsCount = 2 // Estimate assumes two submissions
976- const reviewersCost = reviewers
977- . filter ( ( r ) => ! this . isAIReviewer ( r ) )
978- . reduce ( ( sum , r ) => {
979- const fixedAmount = parseFloat ( r . fixedAmount || 0 )
980- const baseCoefficient = parseFloat ( r . baseCoefficient || 0 )
981- const incrementalCoefficient = parseFloat ( r . incrementalCoefficient || 0 )
982- const reviewerCost = fixedAmount + ( baseCoefficient + incrementalCoefficient * estimatedSubmissionsCount ) * firstPlacePrize
983-
984- const count = parseInt ( r . memberReviewerCount ) || 1
985- return sum + reviewerCost * count
986- } , 0 )
987- . toFixed ( 2 )
979+ const reviewersCost = prizeType === CHALLENGE_PRIZE_TYPE . POINT
980+ ? '0.00'
981+ : reviewers
982+ . filter ( ( r ) => ! this . isAIReviewer ( r ) )
983+ . reduce ( ( sum , r ) => {
984+ const fixedAmount = parseFloat ( r . fixedAmount || 0 )
985+ const baseCoefficient = parseFloat ( r . baseCoefficient || 0 )
986+ const incrementalCoefficient = parseFloat ( r . incrementalCoefficient || 0 )
987+ const reviewerCost = fixedAmount + ( baseCoefficient + incrementalCoefficient * estimatedSubmissionsCount ) * firstPlacePrize
988+
989+ const count = parseInt ( r . memberReviewerCount ) || 1
990+ return sum + reviewerCost * count
991+ } , 0 )
992+ . toFixed ( 2 )
988993
989994 if ( isLoading ) {
990995 return (
0 commit comments