diff --git a/src/shared/components/challenge-listing/Listing/Bucket/index.jsx b/src/shared/components/challenge-listing/Listing/Bucket/index.jsx
index 1037cdcc6d..b9bb2a5297 100644
--- a/src/shared/components/challenge-listing/Listing/Bucket/index.jsx
+++ b/src/shared/components/challenge-listing/Listing/Bucket/index.jsx
@@ -102,7 +102,7 @@ export default function Bucket({
// );
// }
- if (sortedChallenges.length === 0) {
+ if (!loading && sortedChallenges.length === 0) {
return (
{ `${NO_LIVE_CHALLENGES_CONFIG[bucket]}` }
diff --git a/src/shared/components/challenge-listing/Listing/index.jsx b/src/shared/components/challenge-listing/Listing/index.jsx
index bd28578486..c7ef290e78 100644
--- a/src/shared/components/challenge-listing/Listing/index.jsx
+++ b/src/shared/components/challenge-listing/Listing/index.jsx
@@ -7,12 +7,13 @@ import React from 'react';
import PT from 'prop-types';
import { connect } from 'react-redux';
import {
- BUCKETS, isReviewOpportunitiesBucket,
+ BUCKETS, isReviewOpportunitiesBucket, NO_LIVE_CHALLENGES_CONFIG,
// BUCKETS, getBuckets, isReviewOpportunitiesBucket, NO_LIVE_CHALLENGES_CONFIG,
} from 'utils/challenge-listing/buckets';
// import { challenge as challengeUtils } from 'topcoder-react-lib';
import Bucket from './Bucket';
import ReviewOpportunityBucket from './ReviewOpportunityBucket';
+import CardPlaceholder from '../placeholders/ChallengeCard';
import './style.scss';
// const Filter = challengeUtils.filter;
@@ -181,13 +182,36 @@ function Listing({
//
// );
// }
+ const loading = loadingMyChallenges
+ || loadingOpenForRegistrationChallenges
+ || loadingOnGoingChallenges;
+ const placeholders = [];
+ if (challenges.length > 0) {
+ return (
+
+ {preListingMsg}
+ {(auth.user && myChallenges.length > 0) ? getBucket(BUCKETS.MY) : null}
+ {/* {extraBucket ? getBucket(extraBucket) : null} */}
+ {openForRegistrationChallenges.length > 0 && getBucket(BUCKETS.OPEN_FOR_REGISTRATION)}
+ {/* {getBucket(BUCKETS.ONGOING)} */}
+
+ );
+ }
+
+ if (loading) {
+ for (let i = 0; i < 10; i += 1) {
+ placeholders.push();
+ }
+ }
return (
- {preListingMsg}
- {(auth.user && myChallenges.length > 0) ? getBucket(BUCKETS.MY) : null}
- {/* {extraBucket ? getBucket(extraBucket) : null} */}
- {openForRegistrationChallenges.length > 0 && getBucket(BUCKETS.OPEN_FOR_REGISTRATION)}
- {/* {getBucket(BUCKETS.ONGOING)} */}
+ {
+ loading
+ ? placeholders
+ : (
+
{ `${NO_LIVE_CHALLENGES_CONFIG[activeBucket]}` }
+ )
+ }
);
}