fix: address early review comments and lint

This commit is contained in:
Mrugesh Mohapatra
2019-02-18 20:43:41 +05:30
committed by Stuart Taylor
parent 65c427a266
commit 7783079af7
10 changed files with 320 additions and 442 deletions

View File

@ -1,4 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Grid, Row, Col } from '@freecodecamp/react-bootstrap';
import Link from '../helpers/Link';
@ -16,12 +17,6 @@ const ColHeader = ({ children, ...other }) => (
);
ColHeader.propTypes = propTypes;
const linkPropTypes = {
children: PropTypes.any,
external: PropTypes.bool,
to: PropTypes.string.isRequired
};
function Footer() {
return (
<footer className='footer'>
@ -73,13 +68,9 @@ function Footer() {
<Link to='https://gitter.im/FreeCodeCamp/home'>Gitter</Link>
<Link to='https://github.com/freeCodeCamp/'>GitHub</Link>
<Link to='/support'>Support</Link>
<Link to='/code-of-conduct'>
Code of Conduct
</Link>
<Link to='/code-of-conduct'>Code of Conduct</Link>
<Link to='/privacy-policy'>Privacy Policy</Link>
<Link to='/terms-of-service'>
Terms of Service
</Link>
<Link to='/terms-of-service'>Terms of Service</Link>
</Col>
<Col lg={3} sm={2} xs={12}>
<ColHeader>Our Learning Resources</ColHeader>

View File

@ -70,12 +70,7 @@ function Supporters({ isDonating, activeDonations }) {
</FullWidthRow>
{isDonating ? null : (
<FullWidthRow>
<Button
bsSize='lg'
bsStyle='primary'
href='/donate'
target='_blank'
>
<Button bsSize='lg' bsStyle='primary' href='/donate' target='_blank'>
Click here to become a Supporter
</Button>
</FullWidthRow>

View File

@ -1,8 +1,15 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Link as GatsbyLink } from 'gatsby';
const propTypes = {
children: PropTypes.any,
external: PropTypes.bool,
to: PropTypes.string.isRequired
};
const Link = ({ children, to, external, ...other }) => {
if (!external && (/^\/(?!\/)/).test(to)) {
if (!external && /^\/(?!\/)/.test(to)) {
return (
<GatsbyLink to={to} {...other}>
{children}
@ -16,5 +23,6 @@ const Link = ({ children, to, external, ...other }) => {
</a>
);
};
Link.propTypes = propTypes;
export default Link;

View File

@ -27,7 +27,7 @@ const AboutPage = () => {
<Fragment>
<Helmet title='About the freeCodeCamp community | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row>
<Col
className='questions'
@ -47,24 +47,19 @@ const AboutPage = () => {
</p>
<h4>How can you help me learn to code?</h4>
<p>
You'll learn to code by completing coding challenges and
building projects. You'll also earn verified certifications
along the way. We also encourage you to join a study group in
your city so you can code in-person with other people.
You'll learn to code by completing coding challenges and building
projects. You'll also earn verified certifications along the way.
We also encourage you to join a study group in your city so you
can code in-person with other people.
</p>
<h4>Is freeCodeCamp really free?</h4>
<p>Yes. Every aspect of freeCodeCamp is 100% free.</p>
<h4>
Can freeCodeCamp help me get a job as a software developer?
</h4>
<h4>Can freeCodeCamp help me get a job as a software developer?</h4>
<p>
Yes. Every year, thousands of people who join the freeCodeCamp
community get their first software developer job. If you're
curious, you can{' '}
<Link
external={true}
to='https://www.linkedin.com/school/4831032/alumni/'
>
<Link to='https://www.linkedin.com/school/4831032/alumni/'>
browse our alumni network on LinkedIn here
</Link>
.
@ -73,31 +68,19 @@ const AboutPage = () => {
<p>
If you add up all the people who use our learning platform, read
our{' '}
<Link
external={true}
to='https://medium.freecodecamp.org'
>
<Link to='https://medium.freecodecamp.org'>
Medium publication
</Link>
, watch our{' '}
<Link
external={true}
to='https://youtube.com/freecodecamp'
>
YouTube channel
</Link>
<Link to='https://youtube.com/freecodecamp'>YouTube channel</Link>
, and post on <Link to='/forum'>our forum</Link>, each month we
help millions of people learn about coding and technology.
</p>
<h4>Is freeCodeCamp a nonprofit?</h4>
<p>
Yes, we are a 501(c)(3){' '}
<Link to='/donate'>donor-supported public charity</Link>. You
can{' '}
<Link
external={true}
to='https://s3.amazonaws.com/freecodecamp/Free+Code+Camp+Inc+IRS+Determination+Letter.pdf'
>
<Link to='/donate'>donor-supported public charity</Link>. You can{' '}
<Link to='https://s3.amazonaws.com/freecodecamp/Free+Code+Camp+Inc+IRS+Determination+Letter.pdf'>
download our IRS Determination Letter here
</Link>
.
@ -129,10 +112,10 @@ const AboutPage = () => {
</p>
<h4>Is freeCodeCamp a replacement for a 4-year degree?</h4>
<p>
No. Please dont drop out of college just to pursue
freeCodeCamp. You can pursue both concurrently. Even though you
dont need a 4-year degree to work as a software developer, it
still helps a lot.
No. Please dont drop out of college just to pursue freeCodeCamp.
You can pursue both concurrently. Even though you dont need a
4-year degree to work as a software developer, it still helps a
lot.
</p>
<h4>Should I complete all of the coding challenges in order?</h4>
<p>
@ -142,81 +125,60 @@ const AboutPage = () => {
<h4>Do I have to use CodePen for the front end projects?</h4>
<p>
As long as your code is publicly viewable somewhere on the
internet, and you have a live demo, you can use whatever tools
you want.
internet, and you have a live demo, you can use whatever tools you
want.
</p>
<h4>How did freeCodeCamp get started?</h4>
<p>
<Link
external={true}
to='https://www.twitter.com/ossia'
>
Quincy
</Link>{' '}
started the freeCodeCamp community in 2014. He is now just one
of thousands of active contributors.
<Link to='https://www.twitter.com/ossia'>Quincy</Link> started the
freeCodeCamp community in 2014. He is now just one of thousands of
active contributors.
</p>
<h4>
I'm a teacher. Is freeCodeCamp an appropriate resource for my
className?
</h4>
<p>
Yes. Many high school, college, and adult ed programs
incorporate freeCodeCamp into their coursework. We're open
source, so no license or special permission from us is
necessary. We're even building special tools for teachers.
Yes. Many high school, college, and adult ed programs incorporate
freeCodeCamp into their coursework. We're open source, so no
license or special permission from us is necessary. We're even
building special tools for teachers.
</p>
<h4>
Can I live-stream myself working on freeCodeCamp challenges and
projects? Can I blog about how I solved them?
</h4>
<p>
Yes. We welcome this. Also, don't be shy about "spoiling"
projects or challenges. The solutions to all of these challenges
are already all over the internet.
Yes. We welcome this. Also, don't be shy about "spoiling" projects
or challenges. The solutions to all of these challenges are
already all over the internet.
</p>
<h4>
Can I create apps or tools based around the freeCodeCamp
community and platform?
Can I create apps or tools based around the freeCodeCamp community
and platform?
</h4>
<p>
Yes. freeCodeCamp is open source (BSD-3 license), and most
non-sensitive freeCodeCamp data is publicly available. But you
must make it clear that you don't represent freeCodeCamp itself,
and that your project is not officially endorsed by
freeCodeCamp.
and that your project is not officially endorsed by freeCodeCamp.
</p>
<h4>Does freeCodeCamp have a mobile app?</h4>
<p>
You can learn on the go by listening to the{' '}
<Link
external={true}
to='https://podcast.freecodecamp.org'
>
<Link to='https://podcast.freecodecamp.org'>
freeCodeCamp Podcast
</Link>{' '}
or watching{' '}
<Link
external={true}
to='https://youtube.com/freecodecamp'
>
<Link to='https://youtube.com/freecodecamp'>
freeCodeCamp's YouTube channel
</Link>
. And if you want a mobile app designed specifically for
learning to code, we recommend Grasshopper. It's free and
designed by a freeCodeCamp contributor and her team. You can
download it on{' '}
<Link
external={true}
to='https://itunes.apple.com/us/app/id1354133284'
>
iOS
</Link>{' '}
. And if you want a mobile app designed specifically for learning
to code, we recommend Grasshopper. It's free and designed by a
freeCodeCamp contributor and her team. You can download it on{' '}
<Link to='https://itunes.apple.com/us/app/id1354133284'>iOS</Link>{' '}
or{' '}
<Link
external={true}
to='https://play.google.com/store/apps/details?id=com.area120.grasshopper&hl=en'
>
<Link to='https://play.google.com/store/apps/details?id=com.area120.grasshopper&hl=en'>
Android
</Link>
.
@ -224,12 +186,9 @@ const AboutPage = () => {
<h4>Can I get a job at freeCodeCamp?</h4>
<p>
We're a small donor-supported nonprofit. We've hired several
prominent contributors from within the freeCodeCamp community,
but you're much more likely to get a job at{' '}
<Link
external={true}
to='https://www.linkedin.com/school/free-code-camp/alumni/'
>
prominent contributors from within the freeCodeCamp community, but
you're much more likely to get a job at{' '}
<Link to='https://www.linkedin.com/school/free-code-camp/alumni/'>
one of the hundreds of companies
</Link>{' '}
where freeCodeCamp alumni work.
@ -276,10 +235,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faYoutube} />
</td>
<td>
<Link
external={true}
to='https://youtube.com/freecodecamp'
>
<Link to='https://youtube.com/freecodecamp'>
Our YouTube channel
</Link>
</td>
@ -289,10 +245,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faGithub} />
</td>
<td>
<Link
external={true}
to='https://github.com/freecodecamp/'
>
<Link to='https://github.com/freecodecamp/'>
Our GitHub organization
</Link>
</td>
@ -302,10 +255,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faLinkedin} />
</td>
<td>
<Link
external={true}
to='https://www.linkedin.com/edu/school?id=166029'
>
<Link to='https://www.linkedin.com/edu/school?id=166029'>
Our LinkedIn university page
</Link>
</td>
@ -315,10 +265,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faMedium} />
</td>
<td>
<Link
external={true}
to='https://medium.freecodecamp.org'
>
<Link to='https://medium.freecodecamp.org'>
Our Medium publication
</Link>
</td>
@ -328,10 +275,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faTwitter} />
</td>
<td>
<Link
external={true}
to='https://twitter.com/freecodecamp'
>
<Link to='https://twitter.com/freecodecamp'>
Our Twitter feed
</Link>
</td>
@ -341,10 +285,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faFacebook} />
</td>
<td>
<Link
external={true}
to='https://facebook.com/freecodecamp'
>
<Link to='https://facebook.com/freecodecamp'>
Our Facebook page
</Link>
</td>
@ -354,9 +295,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faLock} />
</td>
<td>
<Link to='/privacy-policy'>
Our privacy policy
</Link>
<Link to='/privacy-policy'>Our privacy policy</Link>
</td>
</tr>
<tr>
@ -364,9 +303,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faBalanceScale} />
</td>
<td>
<Link to='/code-of-conduct'>
Our code of conduct
</Link>
<Link to='/code-of-conduct'>Our code of conduct</Link>
</td>
</tr>
<tr>
@ -384,9 +321,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faBook} />
</td>
<td>
<Link to='/terms-of-service'>
Our terms of service
</Link>
<Link to='/terms-of-service'>Our terms of service</Link>
</td>
</tr>
</tbody>

View File

@ -10,15 +10,9 @@ const CodeOfConductPage = () => {
<Fragment>
<Helmet title='Code of Conduct | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row>
<Col
md={6}
mdOffset={3}
sm={10}
smOffset={1}
xs={12}
>
<Col md={6} mdOffset={3} sm={10} smOffset={1} xs={12}>
<h2 className='text-center'>Code of Conduct</h2>
<hr />
<p>
@ -30,11 +24,11 @@ const CodeOfConductPage = () => {
conduct.
</p>
<p>In short: Be nice. No harassment, trolling, or spamming.</p>
<ul style={{ 'margin-top': '0', 'margin-bottom': '10px' }} >
<ul style={{ 'margin-top': '0', 'margin-bottom': '10px' }}>
<li>
<strong>Harassment</strong> includes sexual language and imagery,
deliberate intimidation, stalking, name-calling, unwelcome
attention, libel, and any malicious hacking or social
<strong>Harassment</strong> includes sexual language and
imagery, deliberate intimidation, stalking, name-calling,
unwelcome attention, libel, and any malicious hacking or social
engineering. freeCodeCamp should be a harassment-free experience
for everyone, regardless of gender, gender identity and
expression, age, sexual orientation, disability, physical
@ -42,8 +36,8 @@ const CodeOfConductPage = () => {
lack thereof).
</li>
<li>
<strong>Trolling</strong> includes posting inflammatory comments to
provoke an emotional response or disrupt discussions.
<strong>Trolling</strong> includes posting inflammatory comments
to provoke an emotional response or disrupt discussions.
</li>
<li>
<strong>Spamming</strong> includes posting off-topic messages to
@ -59,17 +53,14 @@ const CodeOfConductPage = () => {
<Link to='https://gitter.im/freecodecamp/admin'>
admin chat room
</Link>{' '}
- preferably with a screen shot of the offense. The
moderator team will take any action we deem appropriate, up to and
including banning the offender from freeCodeCamp.
- preferably with a screen shot of the offense. The moderator team
will take any action we deem appropriate, up to and including
banning the offender from freeCodeCamp.
</p>
<p>
Also, no bots are allowed in the freeCodeCamp community without
prior written permission from{' '}
<Link to='https://gitter.im/quincylarson'>
Quincy Larson
</Link>
.
<Link to='https://gitter.im/quincylarson'>Quincy Larson</Link>.
</p>
</Col>
</Row>

View File

@ -49,11 +49,7 @@ const IndexPage = ({
<p>
And yes - all of this is 100% free, thanks to the thousands of campers
who{' '}
<a
href='/donate'
rel='noopener noreferrer'
target='_blank'
>
<a href='/donate' rel='noopener noreferrer' target='_blank'>
donate
</a>{' '}
to our nonprofit.

View File

@ -12,7 +12,7 @@ const PrivacyPolicyPage = () => {
<Fragment>
<Helmet title='Privacy Policy | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row>
<Col
className='questions'
@ -22,7 +22,9 @@ const PrivacyPolicyPage = () => {
smOffset={1}
xs={12}
>
<h2 className='text-center'>freeCodeCamp.org Privacy Policy: Questions and Answers</h2>
<h2 className='text-center'>
freeCodeCamp.org Privacy Policy: Questions and Answers
</h2>
<hr />
<p>
We take your privacy seriously. And we give you full control over
@ -134,17 +136,16 @@ const PrivacyPolicyPage = () => {
those people have access to your private data.
</p>
<p>
freeCodeCamp has a few full-time staff, some of whom work
directly on our databases. They have the ability to view your
private data, but only do so when providing you with technical
support.
freeCodeCamp has a few full-time staff, some of whom work directly
on our databases. They have the ability to view your private data,
but only do so when providing you with technical support.
</p>
<p>
As for the personal data that you choose to share on your
developer portfolio, anyone on the internet can see it by
navigating to your developer portfolio's public URL. Again,
we've given you full control over what parts of your developer
profile are public.
navigating to your developer portfolio's public URL. Again, we've
given you full control over what parts of your developer profile
are public.
</p>
<h4>What is freeCodeCamp's Donor Privacy Policy?</h4>
<p>
@ -152,15 +153,15 @@ const PrivacyPolicyPage = () => {
information with anyone outside of our nonprofit organization's
team. Donors may choose to display that they are donating to
freeCodeCamp on their freeCodeCamp profile. Otherwise, donor
information will only be used to process donations and send
email confirmations. This policy applies to any written, verbal,
or electronic communication.
information will only be used to process donations and send email
confirmations. This policy applies to any written, verbal, or
electronic communication.
</p>
<h4>Can any other organizations access my data?</h4>
<p>
We don't sell your data to anyone. In order to provide service
to you, your data does pass through some other services. All of
these companies are based in the United States.
We don't sell your data to anyone. In order to provide service to
you, your data does pass through some other services. All of these
companies are based in the United States.
</p>
<p>
We use Amazon Web Services, Azure, and mLab for our servers and
@ -172,8 +173,8 @@ const PrivacyPolicyPage = () => {
<Link to='https://privacy.microsoft.com/en-us/privacystatement'>
Microsoft Azure
</Link>
, and <Link to='https://mlab.com/company/legal/privacy/'>mLab</Link>
.
, and{' '}
<Link to='https://mlab.com/company/legal/privacy/'>mLab</Link>.
</p>
<p>
We use Stripe and PayPal to process donations. You can read the
@ -186,8 +187,8 @@ const PrivacyPolicyPage = () => {
</p>
<p>
We use the CloudFlare and Netlify Content Delivery Networks so
that freeCodeCamp is fast in all parts of the world. You can
read the privacy policy for{' '}
that freeCodeCamp is fast in all parts of the world. You can read
the privacy policy for{' '}
<Link to='https://www.cloudflare.com/privacypolicy/'>
CloudFlare
</Link>{' '}
@ -202,9 +203,9 @@ const PrivacyPolicyPage = () => {
.
</p>
<p>
We use Google Analytics to help us understand the demographics
of our community and how people are using freeCodeCamp. You can
opt out of Google Analytics on freeCodeCamp by{' '}
We use Google Analytics to help us understand the demographics of
our community and how people are using freeCodeCamp. You can opt
out of Google Analytics on freeCodeCamp by{' '}
<Link to='https://tools.google.com/dlpage/gaoptout'>
installing this browser plugin
</Link>
@ -218,14 +219,15 @@ const PrivacyPolicyPage = () => {
For your convenience, we give you the option to sign in using
GitHub, Google, or Facebook if you don't want to use your email
address to sign in. If you choose to use one of these sign in
options, some of your freeCodeCamp data will be shared with
these companies. You can read{' '}
options, some of your freeCodeCamp data will be shared with these
companies. You can read{' '}
<Link to='https://help.github.com/articles/github-privacy-statement/'>
the privacy policy for GitHub
</Link>{' '}
and for <Link to='https://policies.google.com/privacy'>Google</Link>{' '}
and for{' '}
<Link to='https://www.facebook.com/policy.php'>Facebook</Link>.
<Link to='https://policies.google.com/privacy'>Google</Link> and
for <Link to='https://www.facebook.com/policy.php'>Facebook</Link>
.
</p>
<h4>I have questions about my privacy on freeCodeCamp.</h4>
<p>
@ -237,13 +239,13 @@ const PrivacyPolicyPage = () => {
</p>
<h4>How can I find out about changes?</h4>
<p>
This version of freeCodeCamps privacy questions and answers
took effect May 25, 2018.
This version of freeCodeCamps privacy questions and answers took
effect May 25, 2018.
</p>
<p>
freeCodeCamp will announce the next version by email. In the
meantime, freeCodeCamp may update its contact information in
these questions and answers by updating this page
meantime, freeCodeCamp may update its contact information in these
questions and answers by updating this page
(https://www.freecodecamp.org/privacy-policy).
</p>
<p>

View File

@ -10,11 +10,9 @@ import './sponsors.css';
const SponsorsPage = () => {
return (
<Fragment>
<Helmet
title='Sponsors who help freeCodeCamp through financial and in-kind sponsorship | freeCodeCamp.org'
/>
<Helmet title='Sponsors who help freeCodeCamp through financial and in-kind sponsorship | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row className='text-center'>
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>
<h2>Financial Sponsors</h2>
@ -23,20 +21,14 @@ const SponsorsPage = () => {
</h3>
<hr />
<Row className='sponsor-logos'>
<Link
external={true}
to='https://www.class-central.com'
>
<Link to='https://www.class-central.com'>
<img
alt="Class Central's logo"
className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/class-central-logo.jpg'
/>
</Link>
<Link
external={true}
to='https://www.tsugicloud.org'
>
<Link to='https://www.tsugicloud.org'>
<img
alt="TsugiCloud's logo"
className='img-responsive sponsor-logo'
@ -48,30 +40,21 @@ const SponsorsPage = () => {
<h3>These companies donate their services to freeCodeCamp.org</h3>
<hr />
<Row className='sponsor-logos'>
<Link
external={true}
to='https://netlify.com'
>
<Link to='https://netlify.com'>
<img
alt="Netlify's logo"
className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/netlify-logo.jpg'
/>
</Link>
<Link
external={true}
to='https://www.mlab.com/'
>
<Link to='https://www.mlab.com/'>
<img
alt="mLab's logo"
className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/mLab-logo.png'
/>
</Link>
<Link
external={true}
to='https://auth0.com'
>
<Link to='https://auth0.com'>
<img
alt="Auth0's logo"
className='img-responsive sponsor-logo'
@ -80,30 +63,21 @@ const SponsorsPage = () => {
</Link>
</Row>
<Row className='sponsor-logos'>
<Link
external={true}
to='https://www.discourse.org/'
>
<Link to='https://www.discourse.org/'>
<img
alt="Discourse's logo"
className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/discourse-logo.png'
/>
</Link>
<Link
external={true}
to='https://algolia.com'
>
<Link to='https://algolia.com'>
<img
alt="Algolia's logo"
className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/algolia-logo.jpg'
/>
</Link>
<Link
external={true}
to='https://cloudflare.com'
>
<Link to='https://cloudflare.com'>
<img
alt="Cloudflare's logo"
className='img-responsive sponsor-logo'

View File

@ -12,7 +12,7 @@ const SupportPage = () => {
<Fragment>
<Helmet title='Support | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row>
<Col
className='questions'
@ -30,13 +30,10 @@ const SupportPage = () => {
</h4>
<p>
You have created a duplicate account.{' '}
<Link to='/settings'>
Sign out of your account
</Link>{' '}
and try signing in using a different service (Google, GitHub,
Facebook) that you may have used to in the past. Or try signing in
using an email address you may have used on freeCodeCamp in the
past.
<Link to='/settings'>Sign out of your account</Link> and try
signing in using a different service (Google, GitHub, Facebook)
that you may have used to in the past. Or try signing in using an
email address you may have used on freeCodeCamp in the past.
</p>
<h4 id='faq_donation'>
I set up a monthly donation, but I need to update or cancel the
@ -68,17 +65,14 @@ const SupportPage = () => {
freeCodeCamp. Thanks for your patience.
</p>
<h4>
When I go to{' '}
<Link to='/learn'>
Learning Curriculum
</Link>{' '}
the challenges are completely blank.
When I go to <Link to='/learn'>Learning Curriculum</Link> the
challenges are completely blank.
</h4>
<p>
Do a hard refresh of the website by pressing control+shift+r in
Windows or command+shift+r on Mac/Linux. If that doesn't work, you
may need to clear your cookies. Here is{' '}
<Link to='/forum/t/205075'>
<Link external={true} to='/forum/t/205075'>
how to clear specific cookies
</Link>
.
@ -89,7 +83,7 @@ const SupportPage = () => {
</h4>
<p>
This is caused by an infinite loop in your code editor.{' '}
<Link to='/forum/t/19550'>
<Link external={true} to='/forum/t/19550'>
Here's how to fix this
</Link>
.

View File

@ -12,7 +12,7 @@ const TermsOfServicePage = () => {
<Fragment>
<Helmet title='Terms of Service | freeCodeCamp.org' />
<Spacer />
<Grid className='container'>
<Grid>
<Row>
<Col
className='questions'
@ -167,13 +167,11 @@ const TermsOfServicePage = () => {
</p>
<p>
You may not strain infrastructure of the website with an
unreasonable volume of requests, or requests designed to impose
an unreasonable load on information systems underlying the
website.
unreasonable volume of requests, or requests designed to impose an
unreasonable load on information systems underlying the website.
</p>
<p>
You may not encourage or help anyone in violation of these
terms.
You may not encourage or help anyone in violation of these terms.
</p>
<p>You may not impersonate others through the website.</p>
<h4 id='content-standards'>Content Standards</h4>
@ -184,8 +182,8 @@ const TermsOfServicePage = () => {
</p>
<p>
You may not submit content to the website that violates the law,
infringes anyones intellectual property rights, violates
anyones privacy, or breaches agreements you have with others.
infringes anyones intellectual property rights, violates anyones
privacy, or breaches agreements you have with others.
</p>
<p>
You may not submit content to the website containing malicious
@ -197,9 +195,8 @@ const TermsOfServicePage = () => {
identifier.
</p>
<p>
You may not use the website to disclose information that you
dont have the right to disclose, like others confidential
information.
You may not use the website to disclose information that you dont
have the right to disclose, like others confidential information.
</p>
<h4 id='enforcement'>Enforcement</h4>
<p>
@ -210,9 +207,9 @@ const TermsOfServicePage = () => {
</p>
<p>
The company reserves the right to change, redact, and delete
content on the website for any reason. If you believe someone
has submitted content to the website in violation of these
terms, please contact us immediately.
content on the website for any reason. If you believe someone has
submitted content to the website in violation of these terms,
please contact us immediately.
</p>
<h4 id='your-account'>Your Account</h4>
<p>
@ -223,17 +220,17 @@ const TermsOfServicePage = () => {
To create an account, you must provide some information about
yourself. If you create an account, you agree to provide, at a
minimum, a valid e-mail address, and to keep that address
up-to-date. You may close your account at any time by logging
into your account and clicking the button on your account
settings page.
up-to-date. You may close your account at any time by logging into
your account and clicking the button on your account settings
page.
</p>
<p>
You agree to be responsible for all action taken using your
account, whether authorized by you or not, until you either
close your account or notify the company that your account has
been compromised. You agree to notify the company immediately if
you suspect your account has been compromised. You agree to
select a secure password for your account, and keep it secret.
account, whether authorized by you or not, until you either close
your account or notify the company that your account has been
compromised. You agree to notify the company immediately if you
suspect your account has been compromised. You agree to select a
secure password for your account, and keep it secret.
</p>
<p>
The company may restrict, suspend, or close your account on the
@ -246,32 +243,32 @@ const TermsOfServicePage = () => {
Nothing in these terms gives the company any ownership rights in
intellectual property that you share with the website, such as
your account information or other content you submit to the
website. Nothing in these terms gives you any ownership rights
in the companys intellectual property, either.
website. Nothing in these terms gives you any ownership rights in
the companys intellectual property, either.
</p>
<p>
Between you and the company, you remain solely responsible for
content you submit to the website. You agree not to wrongly
imply that content you submit to the website is sponsored or
approved by the company. These terms do not obligate the company
to store, maintain, or provide copies of content you submit.
content you submit to the website. You agree not to wrongly imply
that content you submit to the website is sponsored or approved by
the company. These terms do not obligate the company to store,
maintain, or provide copies of content you submit.
</p>
<p>
Content you submit to the website belongs to you, and you decide
what permission to give others for it. But at a minimum, you
license the company to provide content that you submit to the
website to other users of the website. That special license
allows the company to copy, publish, and analyze content you
submit to the website.
website to other users of the website. That special license allows
the company to copy, publish, and analyze content you submit to
the website.
</p>
<p>
When content you submit is removed from the website, whether by
you or by the company, the companys special license ends when
the last copy disappears from the companys backups, caches, and
other systems. Other licenses you apply to content you submit
may continue after your content is removed. Those licenses may
give others, or the company itself, the right to share your
content through the website again.
you or by the company, the companys special license ends when the
last copy disappears from the companys backups, caches, and other
systems. Other licenses you apply to content you submit may
continue after your content is removed. Those licenses may give
others, or the company itself, the right to share your content
through the website again.
</p>
<p>
Others who receive content you submit to the website may violate
@ -282,19 +279,18 @@ const TermsOfServicePage = () => {
<h4 id='your-responsibility'>Your Responsibility</h4>
<p>
You agree to indemnify the company from legal claims by others
related to your breach of these terms, or breach of these terms
by others using your account on the website. Both you and the
company agree to notify the other side of any legal claims for
which you might have to indemnify the company as soon as
possible. If the company fails to notify you of a legal claim
promptly, you wont have to indemnify the company for damages
that you could have defended against or mitigated with prompt
notice. You agree to allow the company to control investigation,
defense, and settlement of legal claims for which you would have
to indemnify the company, and to cooperate with those efforts.
The company agrees not to agree to any settlement that admits
fault for you or imposes obligations on you without your prior
agreement.
related to your breach of these terms, or breach of these terms by
others using your account on the website. Both you and the company
agree to notify the other side of any legal claims for which you
might have to indemnify the company as soon as possible. If the
company fails to notify you of a legal claim promptly, you wont
have to indemnify the company for damages that you could have
defended against or mitigated with prompt notice. You agree to
allow the company to control investigation, defense, and
settlement of legal claims for which you would have to indemnify
the company, and to cooperate with those efforts. The company
agrees not to agree to any settlement that admits fault for you or
imposes obligations on you without your prior agreement.
</p>
<h4 id='disclaimers'>Disclaimers</h4>
<p>
@ -306,19 +302,19 @@ const TermsOfServicePage = () => {
The website may hyperlink to and integrate websites and services
run by others. The company does not make any warranty about
services run by others, or content they may provide. Use of
services run by others may be governed by other terms between
you and the one running service.
services run by others may be governed by other terms between you
and the one running service.
</p>
<h4 id='limits-on-liability'>Limits on Liability</h4>
<p>
The company will not be liable to you for breach-of-contract
damages company personnel could not have reasonably foreseen
when you agreed to these terms.
damages company personnel could not have reasonably foreseen when
you agreed to these terms.
</p>
<p>
As far as the law allows, the companys total liability to you
for claims of any kind that are related to the website or
content on the website will be limited to $50.
As far as the law allows, the companys total liability to you for
claims of any kind that are related to the website or content on
the website will be limited to $50.
</p>
<h4 id='feedback'>Feedback</h4>
<p>
@ -328,17 +324,16 @@ const TermsOfServicePage = () => {
</p>
<p>
You agree that the company will be free to act on feedback and
suggestions you provide, and that the company wont have to
notify you that your feedback was used, get your permission to
use it, or pay you. You agree not to submit feedback or
suggestions that you believe might be confidential or
proprietary, to you or others.
suggestions you provide, and that the company wont have to notify
you that your feedback was used, get your permission to use it, or
pay you. You agree not to submit feedback or suggestions that you
believe might be confidential or proprietary, to you or others.
</p>
<h4 id='termination'>Termination</h4>
<p>
Either you or the company may end the agreement written out in
these terms at any time. When our agreement ends, your
permission to use the website also ends.
these terms at any time. When our agreement ends, your permission
to use the website also ends.
</p>
<p>
The following provisions survive the end of our agreement: Your
@ -352,54 +347,52 @@ const TermsOfServicePage = () => {
</p>
<p>
You and the company agree to seek injunctions related to these
terms only in state or federal court in San Francisco,
California. Neither you nor the company will object to
jurisdiction, forum, or venue in those courts.
terms only in state or federal court in San Francisco, California.
Neither you nor the company will object to jurisdiction, forum, or
venue in those courts.
</p>
<p>
Other than to seek an injunction or for claims under the
Computer Fraud and Abuse Act, you and the company will resolve
any Dispute by binding American Arbitration Association
arbitration. Arbitration will follow the AAAs Commercial
Arbitration Rules and Supplementary Procedures for Consumer
Related Disputes. Arbitration will happen in San Francisco,
California. You will settle any dispute as an individual, and
not as part of a class action or other representative
proceeding, whether as the plaintiff or a class member. No
arbitrator will consolidate any dispute with any other
arbitration without the companys permission.
Other than to seek an injunction or for claims under the Computer
Fraud and Abuse Act, you and the company will resolve any Dispute
by binding American Arbitration Association arbitration.
Arbitration will follow the AAAs Commercial Arbitration Rules and
Supplementary Procedures for Consumer Related Disputes.
Arbitration will happen in San Francisco, California. You will
settle any dispute as an individual, and not as part of a class
action or other representative proceeding, whether as the
plaintiff or a class member. No arbitrator will consolidate any
dispute with any other arbitration without the companys
permission.
</p>
<p>
Any arbitration award will include costs of the arbitration,
reasonable attorneys fees, and reasonable costs for witnesses.
You or the company may enter arbitration awards in any court
with jurisdiction.
You or the company may enter arbitration awards in any court with
jurisdiction.
</p>
<h4 id='general-terms'>General Terms</h4>
<p>
If a provision of these terms is unenforceable as written, but
could be changed to make it enforceable, that provision should
be modified to the minimum extent necessary to make it
enforceable. Otherwise, that provision should be removed.
could be changed to make it enforceable, that provision should be
modified to the minimum extent necessary to make it enforceable.
Otherwise, that provision should be removed.
</p>
<p>
You may not assign your agreement with the company. The company
may assign your agreement to any affiliate of the company, any
other company that obtains control of the company, or any other
company that buys assets of the company related to the website.
Any attempted assignment against these terms has no legal
effect.
Any attempted assignment against these terms has no legal effect.
</p>
<p>
Neither the exercise of any right under this Agreement, nor
waiver of any breach of this Agreement, waives any other breach
of this Agreement.
Neither the exercise of any right under this Agreement, nor waiver
of any breach of this Agreement, waives any other breach of this
Agreement.
</p>
<p>
These terms embody all the terms of agreement between you and
the company about use of the website. These terms entirely
replace any other agreements about your use of the website,
written or not.
These terms embody all the terms of agreement between you and the
company about use of the website. These terms entirely replace any
other agreements about your use of the website, written or not.
</p>
<h4 id='contact'>Contact</h4>
<p>
@ -408,22 +401,21 @@ const TermsOfServicePage = () => {
</p>
<p>
The company may notify you under these terms using the e-mail
address you provide for your account on the website, or by
posting a message to the homepage of the website or your account
page.
address you provide for your account on the website, or by posting
a message to the homepage of the website or your account page.
</p>
<h4 id='changes'>Changes</h4>
<p>
The company last updated these terms on May 25, 2018, and may
update these terms again. The company will post all updates to
the website. For updates that contain substantial changes, the
company agrees to e-mail you, if youve created an account and
provided a valid e-mail address. The company may also announce
updates with special messages or alerts on the website.
update these terms again. The company will post all updates to the
website. For updates that contain substantial changes, the company
agrees to e-mail you, if youve created an account and provided a
valid e-mail address. The company may also announce updates with
special messages or alerts on the website.
</p>
<p>
Once you get notice of an update to these terms, you must agree
to the new terms in order to keep using the website.
Once you get notice of an update to these terms, you must agree to
the new terms in order to keep using the website.
</p>
</Col>
</Row>