Skip to content

Commit 7375ff2

Browse files
Merge pull request #325 from topcoder-platform/dev
Self-service prod release
2 parents d6198aa + be1dd38 commit 7375ff2

File tree

5 files changed

+26
-3
lines changed

5 files changed

+26
-3
lines changed

src/components/challenge-detail/Header/ChallengeTags.jsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import "./style.module.scss";
3232

3333
export default function ChallengeTags(props) {
3434
const {
35+
selfService,
3536
challengeId,
3637
challengesUrl,
3738
track,
@@ -113,6 +114,13 @@ export default function ChallengeTags(props) {
113114
{matchSkills.map((item) => (
114115
<VerifiedTag item={item} challengesUrl={challengesUrl} />
115116
))}
117+
{
118+
selfService && (
119+
<DevelopmentTrackTag>
120+
<span>On Demand</span>
121+
</DevelopmentTrackTag>
122+
)
123+
}
116124
{tags.map(
117125
(tag) =>
118126
tag && (
@@ -133,6 +141,7 @@ export default function ChallengeTags(props) {
133141
ChallengeTags.defaultProps = {
134142
events: [],
135143
technPlatforms: [],
144+
selfService: false,
136145
};
137146

138147
ChallengeTags.propTypes = {
@@ -143,4 +152,5 @@ ChallengeTags.propTypes = {
143152
technPlatforms: PT.arrayOf(PT.string),
144153
challengeType: PT.shape().isRequired,
145154
openForRegistrationChallenges: PT.shape().isRequired,
155+
selfService: PT.bool,
146156
};

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,11 @@ export default function ChallengeHeader(props) {
7575
status,
7676
type,
7777
track,
78+
legacy,
7879
} = challenge;
7980

81+
const { selfService } = legacy;
82+
8083
const tags = challenge.tags || [];
8184

8285
const allPhases = challenge.phases || [];
@@ -275,6 +278,7 @@ export default function ChallengeHeader(props) {
275278
<h1 styleName="challenge-header">{name}</h1>
276279
<div styleName="tag-container">
277280
<ChallengeTags
281+
selfService={selfService}
278282
challengeId={challengeId}
279283
track={track}
280284
challengeType={_.find(challengeTypesMap, { name: type }) || {}}
@@ -496,6 +500,9 @@ ChallengeHeader.propTypes = {
496500
checkpoints: PT.shape(),
497501
challenge: PT.shape({
498502
id: PT.string.isRequired,
503+
legacy: PT.shape({
504+
selfService: PT.bool,
505+
}),
499506
type: PT.any,
500507
track: PT.string,
501508
drPoints: PT.any,

src/components/challenge-detail/Specification/index.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default function ChallengeDetailsView(props) {
5252
} = challenge;
5353

5454
const roles = (userDetails || {}).roles || [];
55-
const { reviewScorecardId, screeningScorecardId, forumId } = legacy;
55+
const { reviewScorecardId, screeningScorecardId, forumId, selfService } = legacy;
5656

5757
let stockArtValue = "";
5858
const allowStockArt = _.find(metadata, { name: "allowStockArt" });
@@ -163,7 +163,7 @@ export default function ChallengeDetailsView(props) {
163163
<div styleName="challenge-details-view">
164164
<div styleName="challenge-specifications">
165165
<div styleName={`challenge-specs-main ${accentedStyle}`}>
166-
{track.toLowerCase() !== "design" ? (
166+
{track.toLowerCase() !== "design" && !selfService ? (
167167
<div>
168168
{description && (
169169
<article>
@@ -390,6 +390,7 @@ ChallengeDetailsView.propTypes = {
390390
reviewScorecardId: PT.oneOfType([PT.string, PT.number]),
391391
screeningScorecardId: PT.string,
392392
forumId: PT.number,
393+
selfService: PT.bool,
393394
}),
394395
track: PT.string.isRequired,
395396
legacyId: PT.oneOfType([PT.string, PT.number]),

src/containers/Challenges/Listing/ChallengeItem/Tags/index.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import React, { useState, useMemo } from "react";
22
import PT from "prop-types";
3+
import _ from 'lodash';
34
import Tag from "../../../../../components/Tag";
45
import * as util from "../../../../../utils/tag";
56
import { useTargetSize } from "../../../../../utils/hooks/useTargetSize";
67

78
import "./styles.scss";
89

9-
const Tags = ({ tags, onClickTag, tooltip }) => {
10+
const Tags = ({ tags, onClickTag, tooltip, isSelfService }) => {
1011
const Tooltip = tooltip;
1112

1213
const [size, ref] = useTargetSize();
@@ -41,6 +42,7 @@ const Tags = ({ tags, onClickTag, tooltip }) => {
4142

4243
return (
4344
<div styleName="tags" ref={ref}>
45+
{isSelfService && <Tag tag="On Demand" onClick={_.noop}/>}
4446
{visibleTags.map((tag) => (
4547
<Tag tag={tag} key={tag} onClick={onClickTag} />
4648
))}
@@ -54,11 +56,13 @@ const Tags = ({ tags, onClickTag, tooltip }) => {
5456
};
5557

5658
Tags.defaultProps = {
59+
isSelfService: false,
5760
tags: [],
5861
tooltip: ({ children }) => <>{children}</>,
5962
};
6063

6164
Tags.propTypes = {
65+
isSelfService: PT.bool,
6266
tags: PT.arrayOf(PT.string),
6367
onClickTag: PT.func,
6468
};

src/containers/Challenges/Listing/ChallengeItem/index.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ const ChallengeItem = ({ challenge, onClickTag, onClickTrack, isLoggedIn }) => {
6464
</div>
6565
<div styleName="tags">
6666
<Tags
67+
isSelfService={_.get(challenge, 'legacy.selfService')}
6768
tags={challenge.tags}
6869
onClickTag={onClickTag}
6970
tooltip={({ children, more }) => (

0 commit comments

Comments
 (0)