Skip to content

Commit ea3c52b

Browse files
authored
Merge pull request #4577 from nursoltan-s/hotfix-4557
update my dashboard page
2 parents d236274 + 2543c40 commit ea3c52b

File tree

5 files changed

+37
-5
lines changed

5 files changed

+37
-5
lines changed

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,18 @@ function normalizeSubTrackTagForRendering(subTrack) {
3535
return _.startCase(_.toLower(x));
3636
}
3737

38+
function normalizeSubTrack(subTrack) {
39+
const type = _.upperCase(subTrack);
40+
return type.replace(/ /g, '_');
41+
}
42+
3843
export default function ChallengeCard({
3944
challenge,
4045
selectChallengeDetailsTab,
4146
setChallengeListingFilter,
4247
// unregisterFromChallenge,
4348
userResources,
49+
challengeSubtracksMap,
4450
}) {
4551
const {
4652
phases,
@@ -51,6 +57,8 @@ export default function ChallengeCard({
5157
type,
5258
} = challenge;
5359

60+
const subTrackId = _.findKey(challengeSubtracksMap, { abbreviation: normalizeSubTrack(type) });
61+
5462
const { track } = legacy;
5563

5664
let EventTag;
@@ -100,15 +108,14 @@ export default function ChallengeCard({
100108
const submitted = _.get(userDetails, 'hasUserSubmittedForReview');
101109
const nextPhase = phases && _.last(phases);
102110

103-
const submissionPhase = _.find(phases, { name: 'Submission' });
104111
const nextPhaseType = _.get(nextPhase, 'phaseType');
105112

106113
if (submitted && _.intersection(nextPhaseType, [
107114
'Appeals',
108115
'Appeal Response',
109116
]).length) showOrLink = true;
110117

111-
const submissionOpen = moment(submissionPhase.scheduledEndDate).isSameOrAfter(new Date());
118+
const isChallengeOpen = status === 'Active';
112119

113120
const allPhases = phases || [];
114121
let statusPhase = allPhases
@@ -141,12 +148,12 @@ export default function ChallengeCard({
141148
<EventTag
142149
onClick={
143150
() => setImmediate(
144-
() => setChallengeListingFilter({ subtracks: [type] }),
151+
() => setChallengeListingFilter({ subtracks: [subTrackId] }),
145152
)
146153
}
147154
theme={{ button: style.tag }}
148155
to={`/challenges?filter[subtracks][0]=${
149-
encodeURIComponent(type)}`}
156+
encodeURIComponent(subTrackId)}`}
150157
>
151158
{normalizeSubTrackTagForRendering(type)}
152159
</EventTag>
@@ -222,7 +229,7 @@ export default function ChallengeCard({
222229
) : null
223230
}
224231
{
225-
submitter && submissionOpen ? (
232+
submitter && isChallengeOpen ? (
226233
<Button
227234
size="sm"
228235
theme={{ button: style.button }}
@@ -278,4 +285,5 @@ ChallengeCard.propTypes = {
278285
setChallengeListingFilter: PT.func.isRequired,
279286
// unregisterFromChallenge: PT.func.isRequired,
280287
userResources: PT.arrayOf(PT.shape()),
288+
challengeSubtracksMap: PT.shape().isRequired,
281289
};

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export default function Challenges({
2828
switchShowChallengeFilter,
2929
unregisterFromChallenge,
3030
userResources,
31+
challengeSubtracksMap,
3132
}) {
3233
if (challengesLoading) {
3334
return (
@@ -76,6 +77,7 @@ export default function Challenges({
7677
setChallengeListingFilter={setChallengeListingFilter}
7778
unregisterFromChallenge={unregisterFromChallenge}
7879
userResources={userResources}
80+
challengeSubtracksMap={challengeSubtracksMap}
7981
/>
8082
))
8183
) : (
@@ -163,4 +165,5 @@ Challenges.propTypes = {
163165
switchShowChallengeFilter: PT.func.isRequired,
164166
unregisterFromChallenge: PT.func.isRequired,
165167
userResources: PT.arrayOf(PT.shape()),
168+
challengeSubtracksMap: PT.shape().isRequired,
166169
};

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export default class MyChallenges extends React.Component {
7070
unregisterFromChallenge,
7171
userGroups,
7272
userResources,
73+
challengeSubtracksMap,
7374
} = this.props;
7475

7576
const myCommunities = communities.filter(x => _.intersection(userGroups, x.groupIds).length)
@@ -107,6 +108,7 @@ export default class MyChallenges extends React.Component {
107108
switchShowChallengeFilter={switchShowChallengeFilter}
108109
unregisterFromChallenge={unregisterFromChallenge}
109110
userResources={userResources}
111+
challengeSubtracksMap={challengeSubtracksMap}
110112
/>
111113
) : null
112114
}
@@ -156,4 +158,5 @@ MyChallenges.propTypes = {
156158
unregisterFromChallenge: PT.func.isRequired,
157159
userGroups: PT.arrayOf(PT.string).isRequired,
158160
userResources: PT.arrayOf(PT.shape()),
161+
challengeSubtracksMap: PT.shape().isRequired,
159162
};

src/shared/components/Dashboard/index.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export default function Dashboard({
4242
xlBadge,
4343
// errorLoadingRss,
4444
userResources,
45+
challengeSubtracksMap,
4546
}) {
4647
return (
4748
<div styleName="container">
@@ -83,6 +84,7 @@ export default function Dashboard({
8384
unregisterFromChallenge={unregisterFromChallenge}
8485
userGroups={userGroups}
8586
userResources={userResources}
87+
challengeSubtracksMap={challengeSubtracksMap}
8688
/>
8789
{/* {!errorLoadingRss && (
8890
<CommunityBlog isLoading={tcBlogLoading} posts={tcBlogPosts} />
@@ -130,4 +132,5 @@ Dashboard.propTypes = {
130132
xlBadge: PT.string.isRequired,
131133
// errorLoadingRss: PT.bool.isRequired,
132134
userResources: PT.arrayOf(PT.shape()),
135+
challengeSubtracksMap: PT.shape().isRequired,
133136
};

src/shared/containers/Dashboard/index.jsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ export class DashboardPageContainer extends React.Component {
193193
xlBadge,
194194
errorLoadingRss,
195195
userResources,
196+
challengeSubtracksMap,
197+
getTypes,
196198
} = this.props;
197199

198200
// console.log('r', userResources);
@@ -204,6 +206,10 @@ export class DashboardPageContainer extends React.Component {
204206
({ announcementPreviewId } = qs.parse(urlQuery));
205207
}
206208

209+
if (_.isEmpty(challengeSubtracksMap)) {
210+
getTypes();
211+
}
212+
207213
return (
208214
<Dashboard
209215
achievements={achievements}
@@ -238,6 +244,7 @@ export class DashboardPageContainer extends React.Component {
238244
xlBadge={xlBadge}
239245
errorLoadingRss={errorLoadingRss}
240246
userResources={userResources ? userResources.resources : []}
247+
challengeSubtracksMap={challengeSubtracksMap}
241248
/>
242249
);
243250
}
@@ -314,6 +321,8 @@ DashboardPageContainer.propTypes = {
314321
errorLoadingRss: PT.bool,
315322
getMemberResources: PT.func.isRequired,
316323
userResources: PT.shape(),
324+
challengeSubtracksMap: PT.shape().isRequired,
325+
getTypes: PT.func.isRequired,
317326
};
318327

319328
function mapStateToProps(state, props) {
@@ -370,6 +379,7 @@ function mapStateToProps(state, props) {
370379
xlBadge: dash.xlBadge,
371380
errorLoadingRss: state.rss.errorLoadingRss,
372381
userResources: state.members.userResources,
382+
challengeSubtracksMap: state.challengeListing.challengeSubtracksMap,
373383
};
374384
}
375385

@@ -448,6 +458,11 @@ function mapDispatchToProps(dispatch) {
448458
dispatch(a.unregisterInit());
449459
dispatch(a.unregisterDone(auth, challengeId));
450460
},
461+
getTypes: () => {
462+
const cl = challengeListingActions.challengeListing;
463+
dispatch(cl.getChallengeTypesInit());
464+
dispatch(cl.getChallengeTypesDone());
465+
},
451466
};
452467
}
453468

0 commit comments

Comments
 (0)