* 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>
* fix: replace index with script/styles as needed
* fix: remove redundant fileKey
It's overwritten by createPoly, so the parser does not need to create it
* fix: curriculum test suite
* Update client/src/templates/Challenges/classic/MultifileEditor.js
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@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>