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]}` }
+ ) + }
); }