Skip to content

Commit 83aaed3

Browse files
author
Vikas Agarwal
committed
fix: git#802-Challenge phase is not updated in listing page
Implemented showing basic phase details with current data model. The existing code was assuming very old data model that is why it was not showing correct phase details. It still might not be showing correct details for different phases and it has to be fixed as case are identified.
1 parent 4b960a8 commit 83aaed3

File tree

1 file changed

+25
-12
lines changed
  • src/components/ChallengesComponent/ChallengeCard

1 file changed

+25
-12
lines changed

src/components/ChallengesComponent/ChallengeCard/index.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Component to render a row for ChallengeList component
33
*/
4-
import _ from 'lodash'
4+
// import _ from 'lodash'
55
import React from 'react'
66
import PropTypes from 'prop-types'
77
import cn from 'classnames'
@@ -39,17 +39,16 @@ const getTimeLeft = (phase, status) => {
3939
if (phase.phaseType === 'Final Fix') {
4040
return FF_TIME_LEFT_MSG
4141
}
42-
43-
let time = moment(phase.scheduledEndTime).diff()
42+
let time = moment(phase.scheduledEndDate).diff()
4443
const late = time < 0
4544
if (late) time = -time
4645

47-
if (status !== CHALLENGE_STATUS.COMPLETED) {
46+
if (status !== CHALLENGE_STATUS.COMPLETED.toLowerCase()) {
4847
const duration = getFormattedDuration(time)
4948
return late ? `Late by ${duration}` : `${duration} to go`
5049
}
5150

52-
return moment(phase.scheduledEndTime).format('DD/MM/YYYY')
51+
return moment(phase.scheduledEndDate).format('DD/MM/YYYY')
5352
}
5453

5554
/**
@@ -58,8 +57,8 @@ const getTimeLeft = (phase, status) => {
5857
* @returns {{phaseMessage: string, endTime: {late, text}}}
5958
*/
6059
const getPhaseInfo = (c) => {
61-
const { allPhases, currentPhases, subTrack, status } = c
62-
let checkPhases = (currentPhases && currentPhases.length > 0 ? currentPhases : allPhases)
60+
const { currentPhaseNames, status, startDate, phases } = c
61+
/* let checkPhases = (currentPhases && currentPhases.length > 0 ? currentPhases : allPhases)
6362
if (_.isEmpty(checkPhases)) checkPhases = []
6463
let statusPhase = checkPhases
6564
.filter(p => p.phaseType !== 'Registration')
@@ -68,12 +67,26 @@ const getPhaseInfo = (c) => {
6867
if (!statusPhase && subTrack === 'FIRST_2_FINISH' && checkPhases.length) {
6968
statusPhase = Object.clone(checkPhases[0])
7069
statusPhase.phaseType = 'Submission'
71-
}
70+
} */
7271
let phaseMessage = STALLED_MSG
73-
if (statusPhase) phaseMessage = statusPhase.phaseType
74-
else if (status === 'DRAFT') phaseMessage = DRAFT_MSG
75-
76-
const endTime = getTimeLeft(statusPhase)
72+
// if (statusPhase) phaseMessage = statusPhase.phaseType
73+
// else if (status === 'DRAFT') phaseMessage = DRAFT_MSG
74+
var lowerStatus = status.toLowerCase()
75+
if (lowerStatus === 'draft') {
76+
phaseMessage = DRAFT_MSG
77+
} else if (lowerStatus === 'active') {
78+
if (!currentPhaseNames || currentPhaseNames.length === 0) {
79+
var timeToStart = moment(startDate).diff()
80+
if (timeToStart > 0) {
81+
phaseMessage = `Scheduled in ${getFormattedDuration(timeToStart)}`
82+
}
83+
} else {
84+
phaseMessage = currentPhaseNames.join('/')
85+
}
86+
}
87+
const activePhases = phases.filter(p => !!p.isOpen)
88+
const activePhase = activePhases.length > 0 ? activePhases[0] : null
89+
const endTime = getTimeLeft(activePhase, lowerStatus)
7790
return { phaseMessage, endTime }
7891
}
7992

0 commit comments

Comments
 (0)