fix(learn): remove cta and add current challenge button (#38807)

This commit is contained in:
Twaha Rahman
2020-05-21 18:39:48 +06:00
committed by GitHub
parent bdbf5bfd8d
commit d01ce3bbc1
3 changed files with 35 additions and 12 deletions

View File

@ -4,11 +4,13 @@ import { Link, Spacer, Loader, FullWidthRow } from '../helpers';
import { Row, Col } from '@freecodecamp/react-bootstrap';
import { apiLocation } from '../../../config/env.json';
import { randomQuote } from '../../utils/get-words';
import CurrentChallengeLink from '../helpers/CurrentChallengeLink';
import './intro.css';
const propTypes = {
complete: PropTypes.bool,
completedChallengeCount: PropTypes.number,
isSignedIn: PropTypes.bool,
name: PropTypes.string,
navigate: PropTypes.func,
@ -24,6 +26,7 @@ function Intro({
navigate,
pending,
complete,
completedChallengeCount,
slug
}) {
if (pending && !complete) {
@ -57,6 +60,13 @@ function Intro({
<Link className='btn btn-lg btn-primary btn-block' to='/settings'>
Update my account settings
</Link>
{completedChallengeCount > 0 ? (
<CurrentChallengeLink isLargeBtn={true}>
Go to current challenge
</CurrentChallengeLink>
) : (
''
)}
</FullWidthRow>
<Spacer />
<Row className='text-center quote-partial'>
@ -72,6 +82,7 @@ function Intro({
</Col>
</Row>
<Row>
{completedChallengeCount < 15 ? (
<Col sm={10} smOffset={1} xs={12}>
<Spacer />
<h4>
@ -79,6 +90,9 @@ function Intro({
<Link to={slug}>start at the beginning</Link>.
</h4>
</Col>
) : (
''
)}
</Row>
</>
);

View File

@ -11,7 +11,8 @@ const currentChallengeApi = '/challenges/current-challenge';
const propTypes = {
children: PropTypes.any,
hardGoTo: PropTypes.func.isRequired
hardGoTo: PropTypes.func.isRequired,
isLargeBtn: PropTypes.bool
};
const mapStateToProps = () => ({});
@ -23,10 +24,16 @@ const createClickHandler = hardGoTo => e => {
return hardGoTo(`${apiLocation}${currentChallengeApi}`);
};
function CurrentChallengeLink({ children, hardGoTo }) {
function CurrentChallengeLink({ children, hardGoTo, isLargeBtn }) {
let classNames;
if (isLargeBtn) {
classNames = 'btn btn-lg btn-primary btn-block';
} else {
classNames = 'btn btn-cta-big btn-primary btn-block';
}
return (
<a
className='btn-cta-big btn btn-primary btn-block'
className={classNames}
href={currentChallengeApi}
onClick={createClickHandler(hardGoTo)}
>

View File

@ -51,7 +51,8 @@ const propTypes = {
state: PropTypes.object,
user: PropTypes.shape({
name: PropTypes.string,
username: PropTypes.string
username: PropTypes.string,
completedChallengeCount: PropTypes.number
})
};
@ -70,7 +71,7 @@ export const LearnPage = ({
isSignedIn,
navigate,
fetchState: { pending, complete },
user: { name = '', username = '' },
user: { name = '', username = '', completedChallengeCount = 0 },
data: {
challengeNode: {
fields: { slug }
@ -86,6 +87,7 @@ export const LearnPage = ({
<Grid>
<Intro
complete={complete}
completedChallengeCount={completedChallengeCount}
isSignedIn={isSignedIn}
name={name}
navigate={navigate}