/* global graphql */ import React from 'react'; import PropTypes from 'prop-types'; import Link from 'gatsby-link'; import Helmet from 'react-helmet'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import { Button } from 'react-bootstrap'; import { ChallengeNode } from '../redux/propTypes'; import { toggleMapModal } from '../redux/app'; import './index.css'; const mapStateToProps = () => ({}); const mapDispatchToProps = dispatch => bindActionCreators({ toggleMapModal }, dispatch); const propTypes = { data: PropTypes.shape({ challengeNode: ChallengeNode }), toggleMapModal: PropTypes.func.isRequired }; const IndexPage = ({ data: { challengeNode: { title, fields: { slug, blockName } } }, toggleMapModal }) => (

Welcome to learn.freeCodeCamp.org

We have thousands of coding lessons to help you improve your skills.

You can earn verified certifications by completing each sections 5 required projects.

{'And yes - all of this is 100% free, thanks to the thousands of ' + 'campers who '} donate {' '} to our nonprofit.

Not sure where to start?

We recommend you start at the beginning{' '} {`${blockName} -> ${title}`}

Want to dive into our curriculum?

); IndexPage.displayName = 'IndexPage'; IndexPage.propTypes = propTypes; export default connect(mapStateToProps, mapDispatchToProps)(IndexPage); export const query = graphql` query FirstChallenge { challengeNode(order: { eq: 0 }, suborder: { eq: 1 }) { title fields { slug blockName } } } `;