Skip to content

Commit 9e0f88e

Browse files
Merge pull request #6844 from topcoder-platform/revert-6841-develop
Revert "Revert RDM submission download changes for further QA --> Prod"
2 parents 6a8263e + 0d487ab commit 9e0f88e

File tree

17 files changed

+76
-77
lines changed

17 files changed

+76
-77
lines changed

.eslintrc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
"jsx-a11y/anchor-is-valid": false,
55
"import/no-cycle": [2, { "maxDepth": 1 }],
66
"react/forbid-prop-types": false,
7-
"react/no-unknown-property": ["error", { "ignore": ["styleName"] }]
7+
"react/no-unknown-property": false,
8+
"react/jsx-no-bind": false,
9+
"react/destructuring-assignment": false,
10+
"react/no-array-index-key": false
811
},
912
"env": {
1013
"browser": true

src/shared/components/Contentful/AppComponent/index.jsx

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -18,59 +18,41 @@ import PathSelector from 'components/MemberPath/PathSelector';
1818
const { fireErrorMessage } = errors;
1919

2020
export function AppComponentSwitch(appComponent) {
21-
const {
22-
fields: {
23-
type,
24-
theme,
25-
props,
26-
props: {
27-
leaderboardApiUrl,
28-
title,
29-
podiumSpots,
30-
isCopilot,
31-
hasChallengeHistory,
32-
tcoPointsApiUrl,
33-
memberLimit,
34-
isAlgo,
35-
},
36-
},
37-
sys: { id },
38-
} = appComponent;
39-
if (type === 'TCO-Leaderboard') {
21+
if (appComponent.fields.type === 'TCO-Leaderboard') {
4022
return (
4123
<Leaderboard
42-
id={id}
43-
apiUrl={leaderboardApiUrl}
44-
title={title}
45-
podiumSpots={podiumSpots}
46-
isCopilot={isCopilot}
47-
hasChallengeHistory={hasChallengeHistory}
48-
tcoPointsApiUrl={tcoPointsApiUrl}
49-
memberLimit={memberLimit}
50-
isAlgo={isAlgo}
51-
key={id}
52-
themeName={theme}
24+
id={appComponent.sys.id}
25+
apiUrl={appComponent.fields.props.leaderboardApiUrl}
26+
title={appComponent.fields.props.title}
27+
podiumSpots={appComponent.fields.props.podiumSpots}
28+
isCopilot={appComponent.fields.props.isCopilot}
29+
hasChallengeHistory={appComponent.fields.props.hasChallengeHistory}
30+
tcoPointsApiUrl={appComponent.fields.props.tcoPointsApiUrl}
31+
memberLimit={appComponent.fields.props.memberLimit}
32+
isAlgo={appComponent.fields.props.isAlgo}
33+
key={appComponent.sys.id}
34+
themeName={appComponent.fields.theme}
5335
/>
5436
);
5537
}
56-
if (type === 'RecruitCRM-Jobs') {
57-
return <RecruitCRMJobs {...props} key={id} />;
38+
if (appComponent.fields.type === 'RecruitCRM-Jobs') {
39+
return <RecruitCRMJobs {...appComponent.fields.props} key={appComponent.sys.id} />;
5840
}
59-
if (type === 'EmailSubscribeForm') {
60-
return <EmailSubscribeForm {...props} key={id} />;
41+
if (appComponent.fields.type === 'EmailSubscribeForm') {
42+
return <EmailSubscribeForm {...appComponent.fields.props} key={appComponent.sys.id} />;
6143
}
62-
if (type === 'GSheet') {
63-
return <GSheet {...props} key={id} />;
44+
if (appComponent.fields.type === 'GSheet') {
45+
return <GSheet {...appComponent.fields.props} key={appComponent.sys.id} />;
6446
}
65-
if (type === 'MemberPath') {
47+
if (appComponent.fields.type === 'MemberPath') {
6648
return (
6749
<PathSelector
68-
{...props}
69-
key={id}
50+
{...appComponent.fields.props}
51+
key={appComponent.sys.id}
7052
/>
7153
);
7254
}
73-
fireErrorMessage(`Unsupported app component type ${type}`, '');
55+
fireErrorMessage(`Unsupported app component type ${appComponent.fields.type}`, '');
7456
return null;
7557
}
7658

src/shared/components/Contentful/Viewport/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ export function ViewportLoader(props) {
272272
}
273273

274274
if (query) {
275-
queries.push({ ...query, content_type: 'viewport' });
275+
queries.push({ ...props.query, content_type: 'viewport' });
276276
}
277277

278278
return (

src/shared/components/Gigs/ReferralCode/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function ReferralCode(props) {
2525
const [growSurfState, setGrowSurfState] = useState(growSurf);
2626
const [copyBtnText, setCopyBtnText] = useState('COPY');
2727
useEffect(() => {
28-
setGrowSurfState(growSurf);
28+
setGrowSurfState(props.growSurf);
2929
}, [growSurf]);
3030

3131
return (

src/shared/components/Settings/Account/LinkedAccount/ExistingLink.jsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,7 @@ export default function ExistingLink(props) {
6464
return (
6565
<div role="link" styleName={`external-link-tile ${pending ? 'external-link-tile--pending' : ''}`} onClick={e => openLink(e, link)}>
6666
<div styleName="ext-link-tile_edit-header">
67-
<div
68-
role="button"
69-
onClick={(e) => {
70-
e.preventDefault();
71-
e.stopPropagation();
72-
onConfirmDeleteLink(e, link);
73-
}}
74-
styleName={`ext-link-tile_edit-header_delete ${link.deleting ? 'ext-link-tile_edit-header_delete--disabled' : ''}`}
75-
/>
67+
<div role="button" onClick={e => onConfirmDeleteLink(e, link)} styleName={`ext-link-tile_edit-header_delete ${link.deleting ? 'ext-link-tile_edit-header_delete--disabled' : ''}`} prevent-event-propagation="true" />
7668
</div>
7769
<div styleName="top">
7870
<div styleName="logo">
@@ -102,7 +94,7 @@ export default function ExistingLink(props) {
10294
<p className={!pending ? 'hidden' : ''} styleName="link-title">
10395
Loading data. This will take a few minutes.
10496
</p>
105-
<a styleName="link-url" id="link-url" href={prependProtocol(link.URL)} target="_blank" rel="noopener noreferrer">
97+
<a styleName="link-url" id="link-url" href={prependProtocol(link.URL)} target="_blank" rel="noopener noreferrer" prevent-event-propagation="true">
10698
{prependProtocol(link.URL)}
10799
</a>
108100
</div>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,9 +404,9 @@ export default function ChallengeViewSelector(props) {
404404
</div>
405405
<div styleName="sort-body">
406406
{
407-
sortOptions.map(option => (
407+
sortOptions.map((option, index) => (
408408
<div
409-
key={`sort-option-${option.name}`}
409+
map={`sort-option-${index}`}
410410
styleName="sort-item"
411411
onClick={() => {
412412
setSelectedSortOption(option.name);

src/shared/components/challenge-detail/Submissions/SubmissionRow/SubmissionHistoryRow/index.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const { getService } = services.submissions;
2121

2222
export default function SubmissionHistoryRow({
2323
isMM,
24+
isRDM,
2425
submission,
2526
finalScore,
2627
provisionalScore,
@@ -81,7 +82,7 @@ export default function SubmissionHistoryRow({
8182
</div>
8283
</div>
8384
{
84-
isLoggedIn && isMM
85+
isLoggedIn && (isMM || isRDM)
8586
&& (numWinners > 0 || challengeStatus === CHALLENGE_STATUS.COMPLETED) && (
8687
<div styleName="col-2 col center">
8788
<div styleName="mobile-header">Action</div>
@@ -121,6 +122,7 @@ SubmissionHistoryRow.defaultProps = {
121122

122123
SubmissionHistoryRow.propTypes = {
123124
isMM: PT.bool.isRequired,
125+
isRDM: PT.bool.isRequired,
124126
submission: PT.number.isRequired,
125127
finalScore: PT.oneOfType([
126128
PT.number,

src/shared/components/challenge-detail/Submissions/SubmissionRow/index.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import SubmissionHistoryRow from './SubmissionHistoryRow';
1919
import style from './style.scss';
2020

2121
export default function SubmissionRow({
22-
isMM, openHistory, member, submissions, score, toggleHistory, challengeStatus,
22+
isMM, isRDM, openHistory, member, submissions, score, toggleHistory, challengeStatus,
2323
isReviewPhaseComplete, finalRank, provisionalRank, onShowPopup, rating, viewAsTable,
2424
numWinners, auth, isLoggedIn,
2525
}) {
@@ -166,7 +166,8 @@ export default function SubmissionRow({
166166
Time
167167
</div>
168168
{
169-
isMM && (numWinners > 0 || challengeStatus === CHALLENGE_STATUS.COMPLETED) && (
169+
(isMM || isRDM)
170+
&& (numWinners > 0 || challengeStatus === CHALLENGE_STATUS.COMPLETED) && (
170171
<div styleName="col-2 col center">
171172
Action
172173
</div>
@@ -185,6 +186,7 @@ export default function SubmissionRow({
185186
<SubmissionHistoryRow
186187
isReviewPhaseComplete={isReviewPhaseComplete}
187188
isMM={isMM}
189+
isRDM={isRDM}
188190
challengeStatus={challengeStatus}
189191
submission={submissions.length - index}
190192
{...submissionHistory}
@@ -224,6 +226,7 @@ SubmissionRow.defaultProps = {
224226

225227
SubmissionRow.propTypes = {
226228
isMM: PT.bool.isRequired,
229+
isRDM: PT.bool.isRequired,
227230
openHistory: PT.bool.isRequired,
228231
member: PT.string.isRequired,
229232
challengeStatus: PT.string.isRequired,

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import React from 'react';
77
import PT from 'prop-types';
88
import moment from 'moment';
9-
import { isMM as checkIsMM } from 'utils/challenge';
9+
import { isMM as checkIsMM, isRDM as checkIsRDM } from 'utils/challenge';
1010
import _ from 'lodash';
1111
import { connect } from 'react-redux';
1212
import { config } from 'topcoder-react-utils';
@@ -309,6 +309,7 @@ class SubmissionsComponent extends React.Component {
309309
} = challenge;
310310

311311
const isMM = this.isMM();
312+
const isRDM = checkIsRDM(challenge);
312313
const isLoggedIn = !_.isEmpty(auth.tokenV3);
313314
const isReviewPhaseComplete = this.checkIsReviewPhaseComplete();
314315

@@ -604,7 +605,7 @@ class SubmissionsComponent extends React.Component {
604605
}
605606
{
606607
((numWinners > 0 || challenge.status === CHALLENGE_STATUS.COMPLETED)
607-
&& isMM && isLoggedIn) && (
608+
&& (isMM || isRDM) && isLoggedIn) && (
608609
<div styleName="block-download-all">
609610
<button
610611
disabled={downloadingAll}
@@ -845,6 +846,7 @@ class SubmissionsComponent extends React.Component {
845846
submissions={sortedSubmissions}
846847
isReviewPhaseComplete={isReviewPhaseComplete}
847848
isMM={isMM}
849+
isRDM={isRDM}
848850
key={submission.member}
849851
{...submission}
850852
challengeStatus={challenge.status}

src/shared/components/challenge-detail/Winners/Winner/index.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ function getId(submissions, placement) {
1919
export default function Winner({
2020
isDesign,
2121
isMM,
22+
isRDM,
2223
prizes,
2324
submissions,
2425
viewable,
@@ -89,7 +90,7 @@ export default function Winner({
8990
</div>
9091
<div styleName="download-container">
9192
{
92-
((!winner.submissionDownloadLink || !viewable) && isMM && isLoggedIn) && (
93+
((!winner.submissionDownloadLink || !viewable) && (isMM || isRDM) && isLoggedIn) && (
9394
<button
9495
onClick={() => {
9596
// download submission
@@ -145,6 +146,7 @@ Winner.defaultProps = {
145146
Winner.propTypes = {
146147
isDesign: PT.bool.isRequired,
147148
isMM: PT.bool.isRequired,
149+
isRDM: PT.bool.isRequired,
148150
prizes: PT.arrayOf(PT.shape()),
149151
submissions: PT.arrayOf(PT.object).isRequired,
150152
viewable: PT.bool.isRequired,

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function Winners({
2222
viewable,
2323
isDesign,
2424
isMM,
25+
isRDM,
2526
isLoggedIn,
2627
auth,
2728
challengeStatus,
@@ -31,7 +32,7 @@ export default function Winners({
3132
<div styleName="container">
3233
{
3334
((winners.length > 0 || challengeStatus === CHALLENGE_STATUS.COMPLETED)
34-
&& isMM && isLoggedIn) && (
35+
&& (isMM || isRDM) && isLoggedIn) && (
3536
<div styleName="block-download-all">
3637
<button
3738
disabled={downloadingAll}
@@ -80,6 +81,7 @@ export default function Winners({
8081
<Winner
8182
isDesign={isDesign}
8283
isMM={isMM}
84+
isRDM={isRDM}
8385
key={`${w.handle}-${w.placement}`}
8486
prizes={prizes}
8587
submissions={submissions}
@@ -101,6 +103,7 @@ Winners.defaultProps = {
101103
viewable: false,
102104
isDesign: false,
103105
isMM: false,
106+
isRDM: false,
104107
isLoggedIn: false,
105108
challengeStatus: '',
106109
};
@@ -112,6 +115,7 @@ Winners.propTypes = {
112115
viewable: PT.bool,
113116
isDesign: PT.bool,
114117
isMM: PT.bool,
118+
isRDM: PT.bool,
115119
isLoggedIn: PT.bool,
116120
challengeStatus: PT.string,
117121
auth: PT.shape().isRequired,

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import PT from 'prop-types';
88
import React from 'react';
9-
import Tooltip from '../../../Tooltip';
9+
import Tooltip from 'components/Tooltip';
1010
import Tip from './Tip';
1111
import './style.scss';
1212

@@ -35,6 +35,11 @@ export default function Prize({
3535
</div>
3636
);
3737

38+
function placeArrow(TooltipNode) {
39+
const arrow = TooltipNode.querySelector('.rc-tooltip-arrow');
40+
arrow.style.left = '33%';
41+
}
42+
3843
const component = (
3944
<div
4045
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
@@ -43,13 +48,7 @@ export default function Prize({
4348
>
4449
{((onlyShowTooltipForPrize && !withoutTooltip)
4550
? (
46-
<Tooltip
47-
content={tip}
48-
placeArrow={(TooltipNode) => {
49-
const arrow = TooltipNode.querySelector('.rc-tooltip-arrow');
50-
arrow.style.left = '33%';
51-
}}
52-
>
51+
<Tooltip content={tip} placeArrow={placeArrow}>
5352
{prizeUI}
5453
</Tooltip>
5554
)

src/shared/components/tc-communities/AccessDenied/index.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default function AccessDenied(props) {
2424
spaceName,
2525
environment,
2626
viewportId,
27-
children,
2827
} = props;
2928

3029
if (viewportId) {
@@ -68,7 +67,7 @@ export default function AccessDenied(props) {
6867
<div styleName="msg">
6968
You are not authorized to access this page.
7069
</div>
71-
{children}
70+
{props.children}
7271
</div>
7372
);
7473
case CAUSE.HAVE_NOT_SUBMITTED_TO_THE_CHALLENGE:

src/shared/components/tc-communities/communities/wipro/Home/index.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ const settings = {
123123
export default function Home(props) {
124124
const {
125125
userId,
126-
resetChallengeListing,
127126
} = props;
128127

129128
return (
@@ -200,7 +199,7 @@ export default function Home(props) {
200199
>
201200
<div styleName="ImageTextStyles.linkWrap style.linkWrap">
202201
<Link
203-
onClick={() => resetChallengeListing()}
202+
onClick={() => props.resetChallengeListing()}
204203
styleName="ImageTextStyles.link"
205204
to="challenges?communityId="
206205
>

src/shared/containers/ErrorIcons/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ function Tip({ errors, clear }) {
2525
&#10799;
2626
</a>
2727
{
28-
errors.map(({ title, message }) => (
29-
<div key={`${title}-${message}`} styleName="item">
28+
errors.map(({ title, message }, i) => (
29+
<div key={i.toString()} styleName="item">
3030
<div styleName="title" title={title}>
3131
{title}
3232
</div>

0 commit comments

Comments
 (0)