* 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