Skip to content

Commit 2c0f5e4

Browse files
committed
fix: open challenge's tab in new tab from register and submission count
#3620
1 parent 03e577c commit 2c0f5e4

File tree

4 files changed

+35
-19
lines changed
  • src/shared/components

4 files changed

+35
-19
lines changed

src/shared/components/challenge-detail/RecommendedActiveChallenges/ChallengesCard/index.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export default function ChallengesCard({
9999
challengesUrl={challengesUrl}
100100
detailLink={challengeDetailLink}
101101
newChallengeDetails
102-
openChallengesInNewTabs={false}
102+
openChallengesInNewTabs
103103
selectChallengeDetailsTab={selectChallengeDetailsTab}
104104
userHandle={userHandle}
105105
className={styles['challenge-status-container']}

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

+8-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function NumRegistrants({
2222
challengesUrl,
2323
newChallengeDetails,
2424
selectChallengeDetailsTab,
25+
openChallengesInNewTabs,
2526
}) {
2627
let tip;
2728
switch (numRegistrants) {
@@ -41,7 +42,7 @@ export default function NumRegistrants({
4142
<div styleName="tooltip">
4243
{tip}
4344
</div>
44-
)}
45+
)}
4546
>
4647
<Link
4748
disabled={!numRegistrants}
@@ -51,6 +52,7 @@ export default function NumRegistrants({
5152
)}
5253
styleName="link"
5354
to={link}
55+
openNewTab={openChallengesInNewTabs}
5456
aria-label={`Number of registrants ${numRegistrants}`}
5557
>
5658
<RegistrantsIcon />
@@ -63,6 +65,10 @@ export default function NumRegistrants({
6365
);
6466
}
6567

68+
NumRegistrants.defaultProps = {
69+
openChallengesInNewTabs: false,
70+
};
71+
6672
NumRegistrants.propTypes = {
6773
challenge: PT.shape({
6874
id: PT.oneOfType([PT.number, PT.string]).isRequired,
@@ -72,4 +78,5 @@ NumRegistrants.propTypes = {
7278
challengesUrl: PT.string.isRequired,
7379
newChallengeDetails: PT.bool.isRequired,
7480
selectChallengeDetailsTab: PT.func.isRequired,
81+
openChallengesInNewTabs: PT.bool,
7582
};

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

+7-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function NumSubmissions({
2222
challengesUrl,
2323
newChallengeDetails,
2424
selectChallengeDetailsTab,
25+
openChallengesInNewTabs,
2526
}) {
2627
let tip;
2728
switch (numSubmissions) {
@@ -42,7 +43,7 @@ export default function NumSubmissions({
4243
<div styleName="tooltip">
4344
{tip}
4445
</div>
45-
)}
46+
)}
4647
>
4748
<Link
4849
onClick={() => (
@@ -51,6 +52,7 @@ export default function NumSubmissions({
5152
)}
5253
styleName="link"
5354
to={link}
55+
openNewTab={openChallengesInNewTabs}
5456
>
5557
<SubmissionsIcon />
5658
<span styleName="number">
@@ -61,6 +63,9 @@ export default function NumSubmissions({
6163
</div>
6264
);
6365
}
66+
NumSubmissions.defaultProps = {
67+
openChallengesInNewTabs: false,
68+
};
6469

6570
NumSubmissions.propTypes = {
6671
challenge: PT.shape({
@@ -72,4 +77,5 @@ NumSubmissions.propTypes = {
7277
challengesUrl: PT.string.isRequired,
7378
newChallengeDetails: PT.bool.isRequired,
7479
selectChallengeDetailsTab: PT.func.isRequired,
80+
openChallengesInNewTabs: PT.bool,
7581
};

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

+19-16
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@ export default function ChallengeStatus(props) {
6060
newChallengeDetails,
6161
selectChallengeDetailsTab,
6262
userHandle,
63+
openChallengesInNewTabs,
6364
} = props;
6465

6566
/* TODO: Split into a separate ReactJS component! */
6667
function renderLeaderboard() {
6768
const {
6869
challenge,
6970
detailLink,
70-
openChallengesInNewTabs,
7171
} = props;
7272

7373
let winners = _.map(
@@ -121,7 +121,7 @@ export default function ChallengeStatus(props) {
121121
)}
122122
to={detailLink}
123123
>
124-
Results
124+
Results
125125
</Link>
126126
);
127127
}
@@ -130,7 +130,6 @@ Results
130130
const {
131131
challenge,
132132
detailLink,
133-
openChallengesInNewTabs,
134133
} = props;
135134
const timeDiff = getTimeLeft(challenge.allPhases.find(p => p.phaseType === 'Registration'));
136135
let timeNote = timeDiff.text;
@@ -149,10 +148,10 @@ Results
149148
target={openChallengesInNewTabs ? '_blank' : undefined}
150149
>
151150
<span>
152-
{ timeNote }
151+
{timeNote}
153152
</span>
154153
<span styleName="to-register">
155-
to register
154+
to register
156155
</span>
157156
</a>
158157
);
@@ -174,6 +173,7 @@ to register
174173
challengesUrl={challengesUrl}
175174
newChallengeDetails={newChallengeDetails}
176175
selectChallengeDetailsTab={selectChallengeDetailsTab}
176+
openChallengesInNewTabs={openChallengesInNewTabs}
177177
/>
178178
</div>
179179
<div styleName="spacing">
@@ -182,16 +182,17 @@ to register
182182
challengesUrl={challengesUrl}
183183
newChallengeDetails={newChallengeDetails}
184184
selectChallengeDetailsTab={selectChallengeDetailsTab}
185+
openChallengesInNewTabs={openChallengesInNewTabs}
185186
/>
186187
</div>
187188
{
188189
challenge.myChallenge
189190
&& (
190-
<div styleName="spacing">
191-
<a styleName="link-forum past" href={`${FORUM_URL}${challenge.forumId}`}>
192-
<ForumIcon />
193-
</a>
194-
</div>
191+
<div styleName="spacing">
192+
<a styleName="link-forum past" href={`${FORUM_URL}${challenge.forumId}`}>
193+
<ForumIcon />
194+
</a>
195+
</div>
195196
)
196197
}
197198
</span>
@@ -234,7 +235,7 @@ to register
234235
return (
235236
<div styleName={showRegisterInfo ? 'challenge-progress with-register-button' : 'challenge-progress'}>
236237
<span styleName="current-phase">
237-
{ phaseMessage }
238+
{phaseMessage}
238239
</span>
239240
<span styleName="challenge-stats">
240241
<div styleName="spacing">
@@ -243,6 +244,7 @@ to register
243244
challengesUrl={challengesUrl}
244245
newChallengeDetails={newChallengeDetails}
245246
selectChallengeDetailsTab={selectChallengeDetailsTab}
247+
openChallengesInNewTabs={openChallengesInNewTabs}
246248
/>
247249
</div>
248250
<div styleName="spacing">
@@ -251,16 +253,17 @@ to register
251253
challengesUrl={challengesUrl}
252254
newChallengeDetails={newChallengeDetails}
253255
selectChallengeDetailsTab={selectChallengeDetailsTab}
256+
openChallengesInNewTabs={openChallengesInNewTabs}
254257
/>
255258
</div>
256259
{
257260
myChallenge
258261
&& (
259-
<div styleName="spacing">
260-
<a styleName="link-forum" href={`${FORUM_URL}${forumId}`}>
261-
<ForumIcon />
262-
</a>
263-
</div>
262+
<div styleName="spacing">
263+
<a styleName="link-forum" href={`${FORUM_URL}${forumId}`}>
264+
<ForumIcon />
265+
</a>
266+
</div>
264267
)
265268
}
266269
</span>

0 commit comments

Comments
 (0)