Commit Graph

195 Commits

Author SHA1 Message Date
awu43
4071b72a6c feat(curriculum): add spy helper (#42566)
* Added initial version of spy helper

* add missing backslashes

* update to check for line start

* change __fixtures file extensions to .ts from .tsx

* add to exports and add documentation

* add tests

* update event.preventDefault() test
2021-07-16 09:20:03 +02:00
Shaun Hamilton
6ca6d9950c feat(client): improve SuperBlock cert claiming UX (#41147)
* feat(client): improve SuperBlock cert claiming UX

* broken: add certCard foundation

* broken: add TODO comments for scatter-brain

* restructure stepsToClaimSelector

* add api-server verifyCanClaimCert logic

* temp: correct verifyCanClaim URL

* move GET logic to CertificationCard, remove console.logs

* add error handling, and navigation logic

* correct verification logical flow

* fix completion-epic updates, fix cert verify

* update widget to button, disable button unless verified

* working: refactor CertChallenge with hook state

* add StepsType

* update Honesty snapshot

* add DonationModal to SuperBlockIntro

* disable Claim Cert button unless also isHonest

* prevent warning when viewing cert

* test: use navigate in Modal to return to hash

* test: replace gatsby.navigate with reach/router.navigate

* add propTypes

* fix: rename propTypes -> prop-types

* use react-scrollable-anchor to squash modal bug

* update location parser type

* open-source Oliver's suggestion

* fix superblock title

* add claim-cert-from-learn tests

* use larger tests

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix some cypress stuff

* fix ShowCertification cypress test

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-07-15 23:51:27 +09:00
awu43
e1d8f4be3a feat(client): ts-migrate client/src/utils (#42666)
* rename js files to ts

* start migrating ajax

* finish migrating ajax

* migrate algolia-locale-setup

* migrate format

* migrate format.test

* migrate get-words

* install axios for types in handled-error

* migrate handled-error

* migrate handled-error.test

* migrate report-error

* migrate script-loaders

* migrate to-learn-path

* correct renamed imports

* remove unnecessary type assertions in searchBar

* remove unnecessary global comment

* remove unnecessary max-len enable/disable

* change axios imports to type imports

* revert to .then() from await

* use UserType from redux/prop-types

* replace assertion with generic type

* revert format to JS

* remove unused getArticleById()

* update putUpdateUserFlag() to use Record

* remove unnecessary envData cast

* update algolia-locale-setup types

* remove invalid key property
2021-07-12 11:17:58 +02:00
Parth Parth
863f0dea2b feat(client): ts-migrate /client/src/utils/fixtures/curriculum-helpers-* (#42469)
Co-authored-by: Parth Parth <thecodingaviator@users.noreply.github.com>
2021-06-30 20:50:56 +05:30
Ahmad Abdolsaheb
b3f2c64de8 fix(client): remove algolia and hot keys modules from landing pages (#42394)
* fix(client): remove algolia and hot keys from landing pages

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-06-24 12:50:36 +03:00
Huyen Nguyen
2c16234853 chore: add jest global variables (#42573) 2021-06-20 09:14:42 +02:00
Victor Duarte
310bbdf54b fix(client): store challenge panes sizes (#42519)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-06-17 23:50:39 +05:30
Oliver Eyton-Williams
2ebc3b62ab feat(client): remove axios, include credentials (#42531)
* Revert "revert: replace axios with fetch"

This reverts commit 418287f1e8.

* fix: always include credentials

Since www.freecodecamp.org and api.freecodecamp.org are different
origins we have to tell fetch to 'include' the credentials.
2021-06-16 21:23:49 +05:30
Mrugesh Mohapatra
418287f1e8 revert: replace axios with fetch
This reverts commit 82f3f6ae0c via PR #41944.
2021-06-16 17:24:57 +05:30
Mrugesh Mohapatra
e402464304 revert(ajax): use 'same-origin' credentials
This reverts commit 80b12ee25c via PR #42525.
2021-06-16 17:24:57 +05:30
Oliver Eyton-Williams
80b12ee25c fix(ajax): use 'same-origin' credentials (#42525) 2021-06-16 09:47:47 +00:00
Oliver Eyton-Williams
82f3f6ae0c refactor: replace axios with fetch (#41944) 2021-06-15 11:47:25 -07:00
Nicholas Carrigan (he/him)
f25e3e69f8 feat: enable new langs (#42491)
Enable italian and portuguese
2021-06-15 13:19:18 +05:30
gikf
bc9e8a69de fix(client): display legacy certs like current ones (#42038)
* fix: display legacy certs like the current ones

* fix: link projects in legacy certs to project pages

* fix: update tests to changed legacy cert display

* fix: update tests for removed legacy certs forms

* fix: display legacy certs like the current ones

* fix: submit projects for cert on projects pages

* fix: remove legacy certs form submitting handling

* fix: move claiming cert setup before both tests

* fix: remove legacy cert update props and actions

* fix: remove legacy cert updates from api

* fix: correct merge conflict
2021-06-11 17:06:46 +01:00
Shaun Hamilton
af2a7658b4 feat(client): remove whitespace from calculated values (#42400)
* feat(client?): remove whitespace for calculated values

* feat(client): remove whitespace from styledeclaration

* do not automatically strip

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: include all properties of CSSStyleDeclaration

* fix test for getPropVal

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-06-10 14:59:02 -07:00
Shaun Hamilton
35b18829d1 fix(curriculum): use mediaText for CSSHelp (#42393)
* fix(curriculum): use mediaText in CSSHelp

prevent selection of style elements with class or media attributes
this should avoid picking up some browser extensions
2021-06-07 23:33:58 +02:00
Shaun Hamilton
24be225fa4 feat(client): refactor propTypes to TS types (#42278) 2021-06-03 14:23:46 +03:00
Oliver Eyton-Williams
802273cf8a refactor: remove sinon (#42337) 2021-06-02 21:03:05 +05:30
Oliver Eyton-Williams
3b115a1876 fix(client): use @freecodecamp/strip-comments for js comments (#42254) 2021-06-01 01:37:45 +02:00
Nicholas Carrigan (he/him)
00b76c0389 fix: link import bug (#42266)
Fix a small bug in the CSS helper tool.
2021-05-27 08:46:23 +02:00
Shaun Hamilton
d5cc9ba259 feat(dev): add css helper function (#42148)
* feat(dev): add css helper function

* add media declaration methods

* use a selector to grab styles

* add CSSHelp class with annoying TS warnings (no-verify)

* replace indexing with getPropertyValue

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>

* connect CSSHelp to helpers, clean up types

* fix: return extended object, not modify prototype

* fix: unnecessary assertion error

* add tests with fixtures

* add afterAll document clean-up

* 'fix' tests

* undo jest transform config

* remove erroneous comments and logs

* reafactor: use existing types and narrow types

* refactor test descriptions

* rename files to appease Mrugesh 😄

* remove probably unnecessary document clean

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-25 07:34:55 -07:00
Oliver Eyton-Williams
66dae77fc5 feat: use TypeScript in the client (#42124) 2021-05-18 00:23:41 +05:30
Oliver Eyton-Williams
854fee4779 Revert "fix(client): use strip-comments library for js comments removal (#41960)" (#42103)
This reverts commit b16fadb436.
2021-05-11 17:12:48 +00:00
Mrugesh Mohapatra
83943de719 chore: rollback CSRF token generation (#42082)
This reverts commit e1c00138a9.
2021-05-11 00:27:08 +05:30
Oliver Eyton-Williams
e1c00138a9 fix: generate csrf tokens on server (#41968)
Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
2021-05-10 21:40:42 +05:30
renovate[bot]
21dd80c47a chore(deps): update dependency prettier to v2.3.0 (#42074)
* chore(deps): update dependency prettier to v2.3.0

* chore: apply formating per prettier

* fix: correctly disable import/no-unresolved

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Mrugesh Mohapatra <hi@mrugesh.dev>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-10 08:48:49 -07:00
Lasse Jørgensen
b16fadb436 fix(client): use strip-comments library for js comments removal (#41960) 2021-05-10 11:03:04 +02:00
Oliver Eyton-Williams
e1f673e685 fix: prevent excessive locale bundling (#41979)
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
2021-05-08 13:18:37 +05:30
Nicholas Carrigan
e46e80e08f feat(client): add chinese traditional
Add chinese traditional to the all-langs validation and necessary
client build configs.
2021-05-05 21:06:54 +05:30
Ahmad Abdolsaheb
27c8d564e4 fix(client): replace Stripe with PayPal (#41924)
* feat: remove stripe payment option from client

* feat: remove stripe completely

* fix: remove last Stripe remnants

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-05-03 11:45:23 +03:00
Oliver Eyton-Williams
2eac236e39 fix: remove JS comments revisited (#41952)
* fix: restrict removeJSComments to test-evaluator

To prevent @babel from being included everywhere, this only calls
removeJSComments inside the test-evaluator

* test: add removeJSComments test
2021-04-30 22:30:06 +03:00
Mrugesh Mohapatra
341fe76f0f chore: roll back CSRF changes for the weekend
This reverts commit 00193858a0.
2021-04-30 23:57:28 +05:30
Oliver Eyton-Williams
00193858a0 fix: generate csrf tokens on server not client (#41908)
Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2021-04-30 09:42:26 +03:00
Oliver Eyton-Williams
9be2fb9a10 fix: use lodash-es in the client (#41931) 2021-04-28 16:11:20 -05:00
Evgeny Klimenchenko
db369fbed1 fix(client): remove JS comments from user code for tests (#41873)
* Removes comments in js challanges by default

* fix local-scope-and-functions test regex

* fix all languages

* revert language changes

* removed unnecessary removeJSComments from challenges

* fix challanges in other languages

* removed removeJSComments from all challanges
2021-04-28 10:18:54 -05:00
Tom
e79e212912 fix(curriculum): helper function regex s flag causing error (#41910) 2021-04-23 22:59:33 +02:00
Shaun Hamilton
d3f59e6d5d fix(dev): rename superBlock with v7 to certSlug (#41738)
* fix(dev): rename superBlock with v7 to slug

* improve name slug -> certSlug

* superBlockTitle -> superBlock

* correct teeny, tiny mistake

* fix: correct slug to certSlug in certLocation

* refactor currentCerts

* rename showCert cert -> certSlug and various
2021-04-23 22:29:17 +03:00
Ahmad Abdolsaheb
d5d786049e feat(api): stripe checkout integration (#41666)
* feat: add api stripe checkout integration

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-04-02 15:33:34 +09:00
Mrugesh Mohapatra
ad9b1f89d8 fix(api, client): update Gatsby, webpack & related things (#41452)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-03-25 12:13:43 -07:00
Kristofer Koishigawa
1e9dc8cea5 fix: remove algolia indices and urls from translations (#41043) 2021-02-11 00:11:51 +05:30
Oliver Eyton-Williams
fffc0e51ec chore(client): refactor & organise config (#40875) 2021-02-03 15:22:07 +05:30
Tom
14ca6beb0a fix: naming scheme for messages in translation files (#40642)
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
2021-01-31 12:15:38 +05:30
Tom
072a7ce6c6 feat(i18n): translate server messages (#40626) 2021-01-31 12:15:38 +05:30
Tom
3978c6be28 feat: i18n user interface (#40306)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-01-31 12:15:32 +05:30
Erik Krogh Kristensen
11dfe9274f fix catastrophic backtracking when removing HTML comments (#40223)
* fix catastrophic backtracking when removing HTML comments

The regexp `/<!--(.|\s)*?-->/g` can experience catastrophic backtracking while matching a string like `<!--                                           -- >` (notice how it does not end with `-->`).    

[You can see the catastrophic backtracking in action here](https://regex101.com/r/2jvwFi/1/debugger). 

This is because both `.` and `\s` matches the space character, and there are therefore a large number of possible ways for `(.|\s)*` to match a long sequence of spaces.  
The regexp evaluator is greedy, and the problem therefore only exists when the string does not match the regexp. 

The fix is simply to remove the ambiguity such that there is only one possible way for the regexp to match a sequence of white-space.

* Update client/src/utils/curriculum-helpers.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-11-12 08:20:34 -08:00
Ahmad Abdolsaheb
3106fe804f fix(client): unify client donations methods (#39562)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-10-14 15:53:26 +05:30
Hassaan Pasha
80438cac3e feat(client, learn): add helper functions for common validation operations (#38605)
Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
2020-09-17 19:38:01 +05:30
Oliver Eyton-Williams
c772382d59 fix: remove remnants of servicebot
None of the code was still in use.
2020-09-04 00:14:24 +05:30
rdm100
885538d9e1 fix: updated and consolidated quotes (#39069)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-06-15 18:42:27 +05:30
Ahmad Abdolsaheb
7db718141b feat: add paypal script loader for one time and subscription (#38553)
* fix: add one-time payment sdk script loader

* fix: remove paypal credit
2020-04-21 00:46:34 +05:30