* 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
* moved portal states to redux
stored a global window
open window if does not exist clear htmlif already exists
moved close window to desktop-layout
close portal if user navigates to route outside of challenges
naming conventions, specify url
dispatch setIsAdvancing and use in portal preview
* fix: close portal if main window closes
* fix: refactor it
* Revert "fix: refactor it"
This reverts commit 197a40a3a6.
* feat: add isAdvancing to hotkeys
* fix: revert to pane on first step of block
* fix: safari issues
* fix: revert to pane when not advancing
---------
Co-authored-by: kravmaguy <flex4lease@gmail.com>
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
* feat: integrate the odin project
* feat: add assignment to markdown parser
* feat: add assignment logic
* fix: doe not always show assignment block
* fix: some other stuff
* fix: introdiction to html and css questions
* fix: remove assignments after first question
* fix: update snapshots and tests
* feat: create rest of HTML foundation course structure
* feat: meta file
* feat: add descriptions to 'html boiler plate' questions
* feat: add description for 'working with text and list items'
* fix: multiple logic issues
* fix: make linter happy
* feat: add description for 'links and images' questions
* fix: add assignments to Joi schema
* fix: tests
* fix: schema
* fix: add help category
* fix: change to possessive wording
* fix: set upcoming change to true in meta file
* fix: spell unordered and ordered correctly
* fix: switch order in meta
* fix: spell boilerplate correctly
* feat: add final project
* chore: add more tests to the final project
* fix: question spelling
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* Apply suggestions from code review
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* fix: translation
* Update client/i18n/locales/english/translations.json
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: create new challenge type
* fix: get the new challenge type working and remove ol css
* fix: translation location
* fix: add challenge type to epic
* fix: set correct video
* fix: max challengeType number
* fix: spelling/grammar errors in project
* fix: check if anchor tags is empty
* Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* Update tools/challenge-parser/parser/plugins/add-video-question.js
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* chore: multiple suggestions
* chore: separate assignments into different plugin
* Apply suggestions from code review
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
* fix: dubble answer header after review
* fix: issue with Gatsby hopefully
* fix: add assignments to Gatsby's Challenge schema
* Update curriculum/schema/challengeSchema.js
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
* feat: add skip-to-content button
* fix: remove content start ids from everywhere and add to default layout
* chore: format landing-top.tsx
* use single quotes in skip-to-content component
* include breadcrumbs in navigation
* linting fail fix
* use anchor tag instead of new component
* update challenge title snap
* fix(test): reliably move focus onto the editor
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* 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
* 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>
* fix: handle the sorting of transformed files
We can't use the ext property, since that is transformed, but the
history is maintained.
* test: make solutions polyVinyls for sorting
* refactor: inline prepareChallenge
* refactor: make solutions polys in getChallenges
* fix: convert each solution to a poly
* fix: skip empty solutions
* fix: get challenge file history in client
* refactor: stop calling isPoly from the client
* fix: remove debug console.log
* refactor: remove unnecessary sorting step
* feat: use legacy flag
chore: reorder challenges
fix: linter
revert: server change
feat: unblock new editor
fix: proper order
fix: 0-based order
fix: broke the order
feat: move tribute certification to its own block
feat: split the old projects block into 4
fix: put all blocks in order
chore: add intro text
refactor: use block, not blockName in query
fix: project progress indicator
* fix: reorder new challenges/certs
* fix: reorder legacy challenges
* fix: reintroduce legacy certs
* feat: add showNewCurriculum flag to env
* chore: forgot sample.env
* feat: use feature flag for display
* fix: rename meta + dirs to match new blocks
* fix: add new blocks to help-category-map
* fix: update completion-modal for new GQL schema
* test: duplicate title/id errors -> warnings
* fix: update completion-modal to new GQL schema Mk2
* chore: re-order metas (again)
* fix: revert super-block-intro changes
The intro needs to show both legacy and new content. We need to decide
which pages are created, rather than than what a page shows when
rendered.
* feat: move upcoming curriculum into own superblock
* fix: handle one certification with two superBlocks
* fix: remove duplicated intros
* fix: remove duplicate projects from /settings
* fix: drop 'two' from Responsive Web Design Two
* chore: rename slug suffix from two to v2
* feat: control display of new curriculum
* feat: control project paths shown on /settings
* fix: use new project order for /settings
This does mean that /settings will change before the release, but I
don't think it's serious. All the projects are there, just not in the
legacy order.
* fix: claim/show cert button
* chore: remove isLegacy
Since we have legacy superblocks, we don't currently need individual
blocks to be legacy
* test: fix utils.test
* fix: verifyCanClaim needs certification
If Shaun removes the cert claim cards, maybe we can remove this entirely
* fix: add hasEditableBoundaries flags where needed
* chore: remove isUpcomingChange
* chore: v2 -> 22
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* refactor: stop spreading challenge over the node
Instead of creating a Gatsby node with id of challenge.id, we create a
single node field that has all the challenge data.
While this makes the GraphQL queries more verbose, it means we're free
to create multiple nodes with the same challenge.id.
* test: update time-line test for new GQL schema
* test: update mocks with new GQL schema
* feat: add data for preview to challengeMeta
* feat: allow creation of project preview frames
* feat: make project preview data available for frame
* refactor: simplify reducer
* feat: show project preview for first challenge
* feat: show project preview on MultiFile challenges
* test: check for presence/absence of preview modal
* fix: simplify previewProject saga
* test: uncomment project preview test
* fix: increase modal size + change modal title
* modal-footer
* feat: adjust preview size
* fix: remove margin, padding, and line-height for preview of finished projects
* Revert "fix: remove margin, padding, and line-height for preview of finished projects"
This reverts commit 0db11a0819.
* fix: remove margin on all previews
* refactor: use closeModal('projectPreview') for clarity
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: get started -> start coding!
* fix: update closeModal type
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>