* feat(Cypress): hotkey tests
* fix: test previous next for projects
* fix: link time-out firefox
* feat: test the "r" hotkey
* fix: change select back to body for now
* fix: retain navigation mode for video challenges
* test: find focused elements
* fix: move focus from panel before pressing 'r'
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
* test: add hotkey test for backend
* test: remove redundant {esc} presses
* refactor: naming change
* fix: refactor properly
* fix: actually refactor it properly
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
* fix(client): convert challengeFiles->files before sending to api
* update use of user.completeChallenges
* parse response in ajax, pre-typing
* add typing to getSessionUser
* refactor: use Omit
* fix: reorganise getSessionUser
* refactor ajax for simplicity
* refactor to be worse
* allow for undefined completedChallenges
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix(client): fix client
* fix propType and add comment
* revert user.json prettification
* slight type refactor and payload correction
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update ChallengeFile type imports
* add cypress test for code-storage
* update test and storage epic
* fix Shaun's tired brain's logic
* refactor with suggestions
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update codeReset
* increate cypress timeout because firefox is slow
* remove unused import to make linter happy
* use focus on editor
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* use more specific seletor for cypress editor test
* account for silly null challengeFiles
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: store accessibility for screenreaders
* Apply suggestions from code review
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: remove old comments
* feat: at short cut announcement when running test
* feat: announce that accesibility mode is turned on
* fix: use Redux values
* Apply suggestions from code review
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* Apply suggestions from Oliver
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: "rip out redux stuff" and use store instead
* Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: old use of props
* Update client/src/templates/Challenges/classic/editor.tsx
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: remove circular dependency
redux depended on templates/Challenges/redux and vice versa. This
meant that import order mattered and confusing bugs could arise.
(cherry picked from commit 7d67a4e70922bbb3051f2f9982dcc69e240d43dc)
* feat: require imports to be in alphabetical order
Import order generally does not matter, but there are edge cases
(circular imports and css imports, for example) where changing order
changes behaviour
(cherry picked from commit b8d1393a91ec6e068caf8e8498a5c95df68c2b2c)
* chore: order imports
* fix: lift up challenge description + title comps
This brings the classic Show closer to the others as they
now all create the description and title components
* fix: remove donation-saga/index circular import
(cherry picked from commit 51a44ca668a700786d2744feffeae4fdba5fd207)
* refactor: extract action-types from settings
(cherry picked from commit 25e26124d691c84a0d0827d41dafb761c686fadd)
* fix: lint errors
* feat: prevent useless renames
* fix(client): refactor to use correct i18n t type
* appease Oliver by importing directly from react-i18n
* fix: use default TFunction type variable
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* refactor: use refs to hold editor and monaco
Also removed a lot of unnecessary conditionals
* refactor: get a ref to the editor directly
Previously we got a ref to react-monaco-editor, but that's an
unnecessary layer of abstraction
* fix: replace data state with ref
* fix: replace remaining useStates with useRefs
* refactor: simplify dataRef access
* fix: store correct id for output zone
* refactor: remove unused parts of MultifileEditor
* fix: use separate models per fileKey
Temp fix, I think the data should store one version per fileKey
* fix: create data for each editor
* refactor: declare data once
* fix: handle widgets etc. like other data
* fix: store an editor per fileKey
* refactor: clean up types + initial properties
* refactor: remove redundant constructor
* fix: remove redundant comment
* refactor: update comments
* migrate files and update tests
fix: use more memory for gatsby develop (#42433)
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>
fix: get showUpcomingChange from env.json (#42440)
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
fix(curriculum): rework Project Euler 98 (#42423)
* fix: rework challenge to use argument in function
* fix: add solution
* fix: use MathJax to improve math notation
fix(curriculum): rework Project Euler 56 (#42364)
* fix: rework challenge to use argument in function
* fix: add solution
* fix: use MathJax to improve look of math notation
fix(curriculum): correct small english typo (#42447)
chore: group together monaco-editor and plugin (#42443)
This should get renovate to create PRs where both are modified.
fix(deps): update dependency algoliasearch to v4.9.2 (#42432)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
migrate files and update tests
Algorithm moved to TSX
first ten files renamed to tsx
first 10 migration complete
first 20 files renamed
migrate some files. rename all
test
index.tsx forced to ignore ts issues
rename and migrate all files
update tests
* remove missed propType declarations
* kebab-caseify
* fi xlinting
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Parth Parth <thecodingaviator@users.noreply.github.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* refactor(client): convert toggle-button to TypeScript
* chore: rename Space to tsx
* refactor(client): convert space to TypeScript
* chore: rename SlimWidthRow to tsx
* refactor(client): slim-width-row to TypeScript
* chore: rename SkeletonSprite to ts
* fix: fixed typos and resolved paths
* chore: resolve path inconsistencies
* refactor(client): skelton-sprite to TypeScript
* chore: rename loader.test to tsx
* chore: add types for react-spinkit
* refactor(client): loader to TypeScript
* refactor(client): link to TypeScript
* refactor(client): image-loader to TypeScript
* refactor(client): full-width-row to TypeScript
* refactor(client): current-challenge-link to TypeScript
* refactor(client): button to TypeScript
* refactor(client): border-color-picker to TypeScript
* refactor(client): avatar-renderer to TypeScript
* chore: changed loadertest(snap) to ts
* chore: optional types added and cleaned files
* fix: args are now optional
* push small updates for Spacer component merge
* update snapshot
* remove type defs from deps
* Revert "remove type defs from deps"
This reverts commit 9f58bf3554.
* correctly remove client type deps
* final push to remove from deps
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>