* refactor: replace isChallenge
Determining if a path is a challenge by the number of path segments is
brittle and we ended up writing bizarre things like
isChallenge(nextChallengePath).
This should be a little more robust. i.e. if we need to know if a page
is a challenge, we can check the challengeMeta
* test: update tests with new logic
* refactor: explicit types for validate
* refactor: explicit return types for ui-components
* refactor: use exec instead of match
* refactor: add lots more boundary types
* refactor: more eslint warnings
* refactor: more explicit exports
* refactor: more explicit types
* refactor: even more explicit types
* fix: relax type contrainsts for superblock-order
* refactor: final boundaries
* refactor: avoid using 'object' type
* fix: use named import for captureException
This uses TypeScript (which works) instead of import/namespace
(which doesn't) to check if captureException exists in sentry/gatsby
(it does)
* feat: the odin-project superblock
* feat: break everything
* fix: correct meta names
* fix: meta again
* fix: tests
* fix: help category and external curriculum test
* fix: file names again
* fix: help category
* fix: remove console log
---------
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* feat(client): link Arabic new articles to freeCodeCamp searchbar
* Point to english articles, instead of arabic articles
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* link the search bar to Arabic news
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* feat: use updateMySocials not updateUserFlag
* fix: replace updateUserFlag with updateMyTheme
* fix: show social icons
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: delete social booleans from client
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* feat: volume slider campire mode
* fix: set a play sound interval
* fix: set volume to 50% if there is no volume key
* fix: add correct colors to progress bar
* fix: remove IE support
* fix: get slide value working in Chrome
* fix: remove space
* fix: actually use volume in the editor
* fix: add aria-label
* fix: set volume if not present in store
* fix: use label instead
* Apply Naomi's review on Toms suggestion
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* fix: linting
* Update client/i18n/locales/english/translations.json
Co-authored-by: Bruce Blaser <bbsmooth@gmail.com>
Co-authored-by: root <root@DESKTOP-EMNPVBP.localdomain>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Bruce Blaser <bbsmooth@gmail.com>
* chore: set up lang config
* chore: migrate the manually translated files
Co-authored-by: Sem Bauke <semboot699@gmail.com>
Co-authored-by: Ilenia <nethleen@gmail.com>
* chore: make curriculum helpers external
* feat: add curriculum helpers as a package
* fix: use right preset?
* fix: update version with babel transpiled files
* fix: re-add fixture
* fix: declare as module
* fix: add declaration files in curriculum helpers
* fix: nothing with version 1.0.4
* fix: missing functions in package
* fix: remove old babel
* fix: linting
* feat: update keyboard shortcuts client endpoint
* Update client/src/redux/settings/settings-sagas.js
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* Update putUpdateMyKeyboardShortcuts return type
* Use new saga in shortcuts-modal
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* refactor: return response with data from ajax
Because we still need to manipulate the data coming back from the server
(files -> challengeFiles) and we want to keep ajax.ts as the interface
between client and server we need to return the manipulated data with
the response.
* feat: re-enable failed updates flushing
* test: failed updates get resubmitted and flushed
* fix: convert settings requests to use { data }
* refactor: use preserveSession
* chore: move files
* wip: i have no idea what i am doing
* feat: finish up the logic
* chore: use order from randy sheet
* chore: standardise titles
* feat: fix layout for new js projects
* fix: utils test
* fix: challenge tests
* fix: ignore show new curriculum on non-english tests
* chore: help category????
* fix: if these tests would fail locally that'd be great
* chore: duplicate ids
* feat: convert RWD cert projects
* feat: convert original projects
* fix: add usesMultiFileEditor to meta
* feat: add cypress tests for saving and loading to/from database
* fix: broken cypress tests
* fix: inconsistent variable naming
* fix: missed variable name
* fix: more cypress
* feat: add solutions for english
* fix: ctrl+s to database only if signed in
* fix: prioritize code from db
* refactor: expand the comments slightly
* feat: let users save cert project code to db
fix: move getChallenges call out of request function so it only runs once
fix: use FlashMessages enum
fix: transform challengeFiles earlier
test: make tribute page use multifile editor
stuff I was playing with - revert this to get it to a working state
refactor: allow undefined editableRegionBoundaries
fix: save history
history is not necessarily ["name.ext"] and using the incorrect history
could cause weird bugs
fix: replace files -> challengeFiles on the client
refactor: DRY out ajax
fix: use file -> challengefile map
refactor: rename ajax types
fix: alphatize flash-messages.ts
revert: tribute page project
fix: remove logs
fix: prettier
fix: cypress
fix: prettier
fix: remove submitComplete action
fix: block UI for new projects
fix: handle code size
* fix: catch undefined files
* fix: don't default to undefined when it's already the default
* fix: only update savedChallenges if applicable
* fix: dehumidify backend + fine tune nearby stuff
* fix: prop-types
* fix: dehumidify sagas
* fix: variable name
* fix: types
* Apply suggestions from code review
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: typo
* fix: prettier
* fix: props types
* fix: flash messages
* Update client/src/utils/challenge-request-helpers.ts
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* chore: rename function uniformize -> standardize
* fix: flash message
* fix: add link to forum on flash messages
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: token rework functional
fix: clean up
fix: more clean up
fix: more clean up
fix: add widget back to settings
fix:
fix:
fix: cypress
Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
fix: use flash enum
* chore: rename webhookToken -> userToken
fix: add translations I forgot to save
* fix: add missing tones for flash messages
* fix: node test
* refactor: DRY up certification and ProjectModal
* fix: use sensible keys for SolutionViewer
* refactor: handle legacy solutions like new ones
* refactor: correct CompletedChallenge type
* fix: store challengeType for multifile projects
* fix: use challengeType to set display type
* feat: use dropdown to display project + code
* refactor: isOpen -> showCode to avoid a clash
We need to be able both show the code and show the completed project
* refactor: remove redundant parts of projectPreview
* refactor: fix project preview types
* feat: wip, using existing modal to show project
* feat: show projects on timeline
* feat: display projects on time-line
* chore: use consistent case for GitHub
* fix(a11y): translate show solution/view
* refactor: rename showFilesSolution
* refactor: use self-closing tag
* fix: remove hardcoding (certification + timeline)
* fix: remove hardcoding (settings)
* test: supply store and mock ga
* fix: include challengeType for projects
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
* refactor: remove space
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
* fix: key -> filekey on challenge submission
* fix: handle submissions without files
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
* refactor: re-organise show-project-links
* refactor: update ChallengeFile's declared shape
* fix: handle missing challenge solution
* refactor: use display function for Certification
* refactor: use display function for TimeLine
* refactor: use common component for timeline + cert
* fix: handle legacy solutions
* refactor: use widget for certifications
* refactor: reorganise ShowDisplayWidget
* refactor: remove unused ids
* test: pass dataCy, not projectTitle, to widget
* chore: kebabify
* revert: add id back for dropdown
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* revert: add the ids back
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* feat(learn, i18n): enable japanese certifications
* feat(learn, i18n): update links for japanese pages
* Revert "feat(learn, i18n): update links for japanese pages"
This reverts commit 8e16f4dd22.
* feat(learn, i18n): update links for japanese pages
* feat(learn, i18n): update algoliaIndices for japanese
* feat(learn, i18n): update meta tags for japanese