Skip to content

Commit f560683

Browse files
Update to use challenge.track instead challenge.legacy.track
1 parent 7e37f2c commit f560683

File tree

9 files changed

+43
-56
lines changed

9 files changed

+43
-56
lines changed

__tests__/shared/components/TrackIcon/__snapshots__/index.jsx.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ exports[`Matches shallow shapshot 2`] = `
2626
className="src-shared-components-TrackIcon-___style__trackIcon___3gJ9l"
2727
>
2828
<div
29-
className="src-shared-components-TrackIcon-___style__data_science___3YlDf src-shared-components-TrackIcon-___style__main-icon___1q-1_"
29+
className="src-shared-components-TrackIcon-___style__develop___3v4fM src-shared-components-TrackIcon-___style__main-icon___1q-1_"
3030
>
3131
CH
3232
</div>
3333
<a
3434
href="https://www.topcoder-dev.com/tco"
3535
>
3636
<div
37-
className="src-shared-components-TrackIcon-___style__data_science___3YlDf src-shared-components-TrackIcon-___style__tco-icon___18ZV7"
37+
className="src-shared-components-TrackIcon-___style__develop___3v4fM src-shared-components-TrackIcon-___style__tco-icon___18ZV7"
3838
>
3939
TCO
4040
</div>

__tests__/shared/components/challenge-listing/ChallengeCard/__snapshots__/index.jsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ exports[`Matches shallow shapshot shapshot 1 1`] = `
1818
"eventName": "Submit",
1919
},
2020
],
21-
"isDataScience": true,
2221
"legacy": Object {
2322
"track": "DEVELOP",
2423
},

__tests__/shared/components/challenge-listing/Listing/__snapshots__/Bucket.jsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ exports[`Matches shallow shapshot 1`] = `
4747
},
4848
],
4949
"id": "2",
50-
"isDataScience": false,
5150
"legacy": Object {
5251
"track": "DEVELOP",
5352
},

src/shared/components/Dashboard/CurrentActivity/Challenges/ChallengeCard/index.jsx

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313

1414
import { config, Link } from 'topcoder-react-utils';
1515

16+
import { COMPETITION_TRACKS } from 'utils/tc';
17+
1618
import {
1719
Button,
1820
DataScienceTrackEventTag,
@@ -38,39 +40,33 @@ export default function ChallengeCard({
3840
status,
3941
userDetails,
4042
type,
43+
track,
4144
} = challenge;
4245

4346
const typeId = _.findKey(challengeTypesMap, { name: type });
4447

45-
const { track } = legacy;
46-
4748
let EventTag;
48-
// let TrackTag;
4949
switch (track) {
50-
case 'DATA_SCIENCE':
50+
case COMPETITION_TRACKS.DATA_SCIENCE:
5151
EventTag = DataScienceTrackEventTag;
52-
// TrackTag = DataScienceTrackTag;
5352
break;
54-
case 'DESIGN':
53+
case COMPETITION_TRACKS.DESIGN:
5554
EventTag = DesignTrackEventTag;
56-
// TrackTag = DesignTrackTag;
5755
break;
58-
case 'DEVELOP':
56+
case COMPETITION_TRACKS.DEVELOP:
5957
EventTag = DevelopmentTrackEventTag;
60-
// TrackTag = DevelopmentTrackTag;
6158
break;
62-
case 'QA':
59+
case COMPETITION_TRACKS.QA:
6360
EventTag = QATrackEventTag;
64-
// TrackTag = QATrackTag;
6561
break;
6662
default:
67-
EventTag = DevelopmentTrackEventTag;
63+
throw new Error('Wrong competition track value');
6864
}
6965

7066
const STALLED_MSG = 'Stalled';
7167
const DRAFT_MSG = 'In Draft';
7268

73-
const forumEndpoint = _.toLower(legacy.track) === 'design'
69+
const forumEndpoint = track === COMPETITION_TRACKS.DESIGN
7470
? `/?module=ThreadList&forumID=${legacy.forumId}`
7571
: `/?module=Category&categoryID=${legacy.forumId}`;
7672

@@ -256,7 +252,6 @@ ChallengeCard.defaultProps = {
256252
ChallengeCard.propTypes = {
257253
challenge: PT.shape({
258254
legacy: PT.shape({
259-
track: PT.oneOf(['DATA_SCIENCE', 'DESIGN', 'DEVELOP', 'QA']).isRequired,
260255
forumId: PT.oneOfType([PT.number, PT.string]),
261256
}).isRequired,
262257
id: PT.oneOfType([PT.number, PT.string]).isRequired,
@@ -267,6 +262,7 @@ ChallengeCard.propTypes = {
267262
userDetails: PT.any,
268263
events: PT.any,
269264
type: PT.string,
265+
track: PT.string.isRequired,
270266
}).isRequired,
271267
selectChallengeDetailsTab: PT.func.isRequired,
272268
setChallengeListingFilter: PT.func.isRequired,

src/shared/components/TrackIcon/index.jsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,30 @@ export default function TrackIcon({
1010
subTrack,
1111
type,
1212
tcoEligible,
13-
isDataScience,
1413
MAIN_URL,
1514
challengesUrl,
1615
}) {
1716
const TCO_URL = `${MAIN_URL}/tco`;
17+
const trackStyle = track.replace(' ', '-').toLowerCase();
1818
return (
1919
<span styleName="trackIcon">
2020
{challengesUrl ? (
2121
<a
2222
href={`${challengesUrl}?filter[subtracks][0]=${
2323
encodeURIComponent(subTrack)}`}
24-
styleName={`${(isDataScience ? 'data_science' : track.toLowerCase())} main-icon`}
24+
styleName={`${trackStyle} main-icon`}
2525
>
2626
{type}
2727
</a>
2828
) : (
2929
<div
30-
styleName={`${(isDataScience ? 'data_science' : track.toLowerCase())} main-icon`}
30+
styleName={`${trackStyle} main-icon`}
3131
>
3232
{type}
3333
</div>
3434
)}
3535
<a href={`${TCO_URL}`}>
36-
<div styleName={tcoEligible ? `${(isDataScience ? 'data_science' : track.toLowerCase())} tco-icon` : 'hidden'}>
36+
<div styleName={tcoEligible ? `${trackStyle} tco-icon` : 'hidden'}>
3737
TCO
3838
</div>
3939
</a>
@@ -42,7 +42,6 @@ export default function TrackIcon({
4242
}
4343

4444
TrackIcon.defaultProps = {
45-
isDataScience: false,
4645
MAIN_URL: config.URL.BASE,
4746
tcoEligible: '',
4847
challengesUrl: '',
@@ -52,7 +51,6 @@ TrackIcon.defaultProps = {
5251
};
5352

5453
TrackIcon.propTypes = {
55-
isDataScience: PT.bool,
5654
tcoEligible: PT.string,
5755
track: PT.string,
5856
subTrack: PT.string,

src/shared/components/TrackIcon/style.scss

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ $track-radius-4: $corner-radius * 2;
3434
background: $tc-light-blue-110;
3535
}
3636

37-
&.develop {
37+
&.develop,
38+
&.development {
3839
background: $tc-green-110;
3940
}
4041

41-
&.qa {
42+
&.qa,
43+
&.quality-assurance {
4244
background: $tc-purple-110;
4345
}
4446

@@ -67,11 +69,17 @@ $track-radius-4: $corner-radius * 2;
6769
}
6870

6971
&.develop,
70-
&.qa {
72+
&.development {
7173
color: $tc-green-110;
7274
background: $tc-green-10;
7375
}
7476

77+
&.qa,
78+
&.quality-assurance {
79+
color: $tc-purple-110;
80+
background: $tc-purple-10;
81+
}
82+
7583
&.data_science,
7684
&.data-science,
7785
&.data {

src/shared/components/challenge-detail/Header/index.jsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ export default function ChallengeHeader(props) {
7171
appealsEndDate,
7272
status,
7373
type,
74+
track,
7475
} = challenge;
7576

76-
const { track, subTrack } = legacy;
77+
const { subTrack } = legacy;
7778
const tags = challenge.tags || [];
7879

7980
const allPhases = challenge.phases || [];
@@ -100,10 +101,7 @@ export default function ChallengeHeader(props) {
100101
registrationEnded = !regPhase.isOpen;
101102
}
102103

103-
let trackLower = track ? track.toLowerCase() : 'design';
104-
if (tags.includes('Data Science')) {
105-
trackLower = 'datasci';
106-
}
104+
const trackLower = track ? track.replace(' ', '-').toLowerCase() : 'design';
107105

108106
const eventNames = (events || []).map((event => (event.eventName || '').toUpperCase()));
109107

@@ -256,7 +254,7 @@ export default function ChallengeHeader(props) {
256254
<div styleName="tag-container">
257255
<ChallengeTags
258256
subTrack={subTrack}
259-
track={trackLower}
257+
track={track}
260258
type={type}
261259
challengesUrl={challengesUrl}
262260
challengeTypesMap={challengeTypesMap}
@@ -479,6 +477,7 @@ ChallengeHeader.propTypes = {
479477
challenge: PT.shape({
480478
id: PT.string.isRequired,
481479
type: PT.any,
480+
track: PT.string,
482481
drPoints: PT.any,
483482
name: PT.any,
484483
subTrack: PT.any,
@@ -489,7 +488,6 @@ ChallengeHeader.propTypes = {
489488
tags: PT.any,
490489
prizes: PT.any,
491490
legacy: PT.shape({
492-
track: PT.any,
493491
subTrack: PT.string,
494492
}),
495493
reliabilityBonus: PT.any,

src/shared/components/challenge-listing/ChallengeCard/index.jsx

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import PT from 'prop-types';
44
import TrackIcon from 'components/TrackIcon';
55
import { TABS as DETAIL_TABS } from 'actions/page/challenge-details';
66
import { Link } from 'topcoder-react-utils';
7-
import { isDevelopMM } from 'utils/challenge';
87
import {
98
getEndDate,
109
getPrizePointsUI,
@@ -41,25 +40,16 @@ function ChallengeCard({
4140
const {
4241
id,
4342
legacy,
43+
track,
44+
type,
4445
} = challenge;
4546

46-
let { track } = legacy;
4747
const { subTrack } = legacy;
48-
challenge.isDataScience = false;
49-
if ((challenge.tags && challenge.tags.includes('Data Science')) || isDevelopMM(challenge)) {
50-
challenge.isDataScience = true;
51-
track = 'DATA_SCIENCE';
52-
}
53-
if (challenge.tags && challenge.tags.includes('QA')) {
54-
track = 'QA';
55-
}
48+
5649
challenge.prize = challenge.prizes || [];
5750

5851
const challengeDetailLink = `${challengesUrl}/${id}`;
59-
const type = getChallengeTypeAbbr(challenge.type, challengeTypes);
60-
if (subTrack === 'DEVELOP_MARATHON_MATCH') {
61-
track = 'DATA_SCIENCE';
62-
}
52+
const typeAbbr = getChallengeTypeAbbr(type, challengeTypes);
6353

6454
const registrationPhase = (challenge.phases || []).filter(phase => phase.name === 'Registration')[0];
6555
const isRegistrationOpen = registrationPhase ? registrationPhase.isOpen : false;
@@ -76,9 +66,8 @@ function ChallengeCard({
7666
<TrackIcon
7767
track={track}
7868
subTrack={subTrack}
79-
type={type}
69+
type={typeAbbr}
8070
tcoEligible={challenge.events && challenge.events.length > 0 ? challenge.events[0].eventName : ''}
81-
isDataScience={challenge.isDataScience}
8271
/>
8372
</span>
8473
</TrackAbbreviationTooltip>

src/shared/components/tc-communities/ChallengesBlock/Card/index.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
DataScienceTrackTag,
88
DesignTrackTag,
99
DevelopmentTrackTag,
10+
QATrackTag,
1011
} from 'topcoder-react-ui-kit';
1112

1213
import { Link } from 'topcoder-react-utils';
@@ -24,11 +25,9 @@ export default function Card({
2425
}) {
2526
const {
2627
subTrack,
27-
legacy,
28+
track,
2829
} = challenge;
2930

30-
const { track } = legacy;
31-
3231
let TrackTag;
3332
switch (track.toLowerCase()) {
3433
case 'datasci':
@@ -41,6 +40,9 @@ export default function Card({
4140
case COMPETITION_TRACKS.DEVELOP:
4241
TrackTag = DevelopmentTrackTag;
4342
break;
43+
case COMPETITION_TRACKS.QA:
44+
TrackTag = QATrackTag;
45+
break;
4446
default:
4547
throw new Error('Wrong competition track value');
4648
}
@@ -101,10 +103,8 @@ Card.propTypes = {
101103
technologies: PT.string.isRequired,
102104
registrationStartDate: PT.string.isRequired,
103105
submissionEndDate: PT.string.isRequired,
104-
legacy: PT.shape({
105-
track: PT.string.isRequired,
106-
}),
107106
subTrack: PT.string.isRequired,
107+
track: PT.string.isRequired,
108108
}).isRequired,
109109
setChallengeListingFilter: PT.func.isRequired,
110110
};

0 commit comments

Comments
 (0)