1
1
/**
2
2
* Component to render a row for ChallengeList component
3
3
*/
4
- import _ from 'lodash'
4
+ // import _ from 'lodash'
5
5
import React from 'react'
6
6
import PropTypes from 'prop-types'
7
7
import cn from 'classnames'
@@ -39,17 +39,16 @@ const getTimeLeft = (phase, status) => {
39
39
if ( phase . phaseType === 'Final Fix' ) {
40
40
return FF_TIME_LEFT_MSG
41
41
}
42
-
43
- let time = moment ( phase . scheduledEndTime ) . diff ( )
42
+ let time = moment ( phase . scheduledEndDate ) . diff ( )
44
43
const late = time < 0
45
44
if ( late ) time = - time
46
45
47
- if ( status !== CHALLENGE_STATUS . COMPLETED ) {
46
+ if ( status !== CHALLENGE_STATUS . COMPLETED . toLowerCase ( ) ) {
48
47
const duration = getFormattedDuration ( time )
49
48
return late ? `Late by ${ duration } ` : `${ duration } to go`
50
49
}
51
50
52
- return moment ( phase . scheduledEndTime ) . format ( 'DD/MM/YYYY' )
51
+ return moment ( phase . scheduledEndDate ) . format ( 'DD/MM/YYYY' )
53
52
}
54
53
55
54
/**
@@ -58,8 +57,8 @@ const getTimeLeft = (phase, status) => {
58
57
* @returns {{phaseMessage: string, endTime: {late, text}} }
59
58
*/
60
59
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)
63
62
if (_.isEmpty(checkPhases)) checkPhases = []
64
63
let statusPhase = checkPhases
65
64
.filter(p => p.phaseType !== 'Registration')
@@ -68,12 +67,26 @@ const getPhaseInfo = (c) => {
68
67
if (!statusPhase && subTrack === 'FIRST_2_FINISH' && checkPhases.length) {
69
68
statusPhase = Object.clone(checkPhases[0])
70
69
statusPhase.phaseType = 'Submission'
71
- }
70
+ } */
72
71
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 )
77
90
return { phaseMessage, endTime }
78
91
}
79
92
0 commit comments