Commit Graph

97 Commits

Author SHA1 Message Date
Oliver Eyton-Williams
1738b1f05f chore(client): fix several type errors (#58500) 2025-01-31 10:25:43 -06:00
Oliver Eyton-Williams
d68cbdb2c4 refactor: remove release code (#57957) 2025-01-06 17:44:57 +01:00
Oliver Eyton-Williams
827b9e3ecd feat: use growthbook to determine next and previous challenges (#57435) 2024-12-12 18:27:41 +01:00
Oliver Eyton-Williams
3c48b8dd3f refactor(client): stop passing around unused data (#57432) 2024-12-06 14:53:18 +01:00
Oliver Eyton-Williams
25de45da46 fix(client): remove video component (#57389) 2024-12-05 09:55:00 +01:00
Oliver Eyton-Williams
50f0c23d15 refactor(client): use generic comp for multiple choice (#56825)
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
2024-11-07 13:02:14 +01:00
Oliver Eyton-Williams
ff7e0cf682 refactor(client): use generic component for dialogues (#56752) 2024-10-24 07:23:23 -07:00
Tom
898b78c2de feat(client/curriculum): add generic challenge and first review block (#56631)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2024-10-18 13:03:20 +02:00
Lars Kappert
d32e57813e chore: update Knip to v5 (#56244) 2024-09-26 13:12:00 +02:00
Tom
c8f272d3c3 feat(challenge-parser/client): add quiz challenge type (#56058)
Co-authored-by: Jessica Wilkins <67210629+jdwilkin4@users.noreply.github.com>
2024-09-24 21:18:17 +05:30
Tom
527d5119e8 feat(curriculum): add boilerplate files for JS quizzes (#56172) 2024-09-23 21:46:20 +02:00
Oliver Eyton-Williams
8c0b459c2b refactor(client): replace Map's static query with page queries (#55792) 2024-08-19 14:56:44 +03:00
Oliver Eyton-Williams
041a841995 refactor(client): simplify page creation (#55720) 2024-08-13 17:36:00 +02:00
Oliver Eyton-Williams
b9893bb4d6 feat(client): show demo on demand in labs (#55569)
Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com>
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
2024-08-13 14:56:19 +02:00
Oliver Eyton-Williams
97279f5bc6 refactor(client): clean up gatsby-node (#55640)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2024-08-02 10:29:44 +02:00
Huyen Nguyen
29607fb473 feat(client): prefetch next challenge (#55472)
Co-authored-by: ahmad abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2024-07-19 11:12:07 +03:00
Manabu Matsumoto
2847c7c77a fix(UI): minimize the fixed contents upper the editor (#54978) 2024-06-21 17:47:09 +02:00
Oliver Eyton-Williams
6781457c7a fix(client): handle pure js challenges in multifile editor (#54438) 2024-04-24 11:46:11 -07:00
Shaun Hamilton
d361e128c0 breaking(curriculum): add scientific-computing to /learn (#53143) (#53146)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Dario-DC <105294544+Dario-DC@users.noreply.github.com>
Co-authored-by: Zaira <33151350+zairahira@users.noreply.github.com>
2024-02-28 08:05:23 -06:00
Tom
ddc459e71e feat(client/curriculum): add upcoming english superblock and challenge types (#52201) 2023-11-09 10:08:51 +01:00
Krzysztof G
d7e0f59528 fix: typos in names (#51896)
Co-authored-by: Viktor Szépe <viktor@szepe.net>
2023-10-11 07:33:56 +03:00
Muhammed Mustafa
49b728d31b refactor: disable naming-convenction rule (#51685) 2023-09-30 20:23:39 +07:00
Oliver Eyton-Williams
e149b09087 feat(curriculum): control loop-protect (#51542) 2023-09-19 08:51:43 -07:00
Oliver Eyton-Williams
391fc2e34d refactor: create shared workspace (#51454) 2023-09-07 23:06:01 +05:30
Tom
9a1895d2e3 feat(client/api): validate ms users (#51372)
Co-authored-by: Muhammed Mustafa <MuhammedElruby@gmail.com>
2023-08-26 07:57:02 -05:00
Oliver Eyton-Williams
dc8dd9c1f7 refactor: move client-only utils inside client (#51120) 2023-08-02 15:51:10 +03:00
Oliver Eyton-Williams
69d6ee32bf feat: python in the browser (#50913)
Co-authored-by: Beau Carnes <1513130+beaucarnes@users.noreply.github.com>
2023-07-28 07:36:25 +02:00
Oliver Eyton-Williams
9441f781fd refactor: move challenge types to config (#51027) 2023-07-24 13:12:47 -07:00
Oliver Eyton-Williams
13110a9665 fix(client): handle final project submission (#50818)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2023-07-04 22:04:45 +02:00
DEVelooper29
f9e0303c32 feat(UI): take back to learn map after finishing a block (#50011)
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
2023-06-22 14:19:01 -07:00
Tom
167a8e7638 refactor: remove dasherize (#50620) 2023-06-07 23:28:56 -07:00
Tom
4dfca3c560 feat: add exam environment (#50356)
* feat: add exam environment

* fix: cypress

* fix: lint-ts

* fix: lint-js

* fix: codefactor

* fix: don't translate comments from new JS spreadsheet

* fix: more tests

* fix: challenge schema

* fix: external curriculum test?

* fix: add more comments
2023-05-18 13:33:43 +02:00
Oliver Eyton-Williams
0d5e2d9ed7 fix: connect LowerJaw to redux (#50180)
* fix: connect LowerJaw to redux
2023-04-26 12:20:58 +02:00
Oliver Eyton-Williams
e955bccfcf refactor: replace isChallenge (#50033)
* 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
2023-04-13 15:25:12 +00:00
Mrugesh Mohapatra
14c05d99fb chore: rename templates in kebab-case (#49738) 2023-03-17 12:56:38 -07:00
Mrugesh Mohapatra
eff2166262 chore: rename redux actions (#49320) 2023-02-10 12:04:17 +00:00
abe
4494b0c05b fix(UI): keep portal preview open (#48451)
* 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>
2023-02-06 08:18:46 +01:00
Sem Bauke
df53c7778c feat: integrate The Odin Project (#48617)
* 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>
2023-01-19 14:55:26 +02:00
Mrugesh Mohapatra
12beeee067 refactor: consistent layout imports (#48378) 2022-11-04 09:40:03 +02:00
Divyansh Singh
6dd8c6241b feat: add hidden skip-to-content button (#47577)
* 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>
2022-10-05 20:43:00 +02:00
Tom
f04fbba22d feat: convert RWD cert projects (#44564)
* 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
2022-05-05 10:58:14 +02:00
Oliver Eyton-Williams
c11bd163b2 feat: display multifile projects (#45220)
* 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>
2022-03-02 19:49:54 -06:00
Tom
57cf47dad4 feat: split rdbms into individual blocks and two challengeTypes (#44978)
* feat: split english rdbms into individual blocks

fix: stuff

fix: remove from partiallyComplete array on submit

fix: add suggestion

Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: prettier

* fix: style suggestion

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-02-11 15:39:27 +00:00
Oliver Eyton-Williams
cacc4eacd7 fix: handle the sorting of transformed files (#44724)
* 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
2022-01-24 10:42:27 -08:00
Tom
b061a760c1 feat: add framework for rwd cert projects (#44505)
* feat: add rwd cert projects

feat: save projects with flag

revert: not needed things

revert: empty line

revert: empty line

fix: it

fix: remove log

* fix: snapshot tests

* fix: show bread crumbs by default

* revert: snapshot fix

* Update curriculum/challenges/_meta/responsive-web-design-projects/meta.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: manuallyApproved -> isManuallyApproved

* fix: add review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-01-06 13:26:54 +00:00
Nicholas Carrigan (he/him)
8614db7a32 feat: enable new curriculum (#44183)
* 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>
2021-12-20 12:36:31 -06:00
Oliver Eyton-Williams
3b560deab6 refactor: stop spreading challenge over the node (#44499)
* 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
2021-12-14 12:11:20 -06:00
Oliver Eyton-Williams
bb7893db8e feat: show project preview (#43967)
* 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>
2021-11-29 18:30:28 +00:00
Vishwasa Navada K
9abc5f66ba feat(client): ts-migrate multiple files (#43262)
* feat(client): ts-migrate rename files

* feat(client): ts-migrate client/src/templates/Introduction/*

* feat(client): ts-migrate client/src/components/formHelpers/form*

* fix: import

* Update client/src/components/formHelpers/form-validators.tsx

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* Update client/src/components/formHelpers/form-fields.tsx

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* Update client/src/components/formHelpers/form-fields.tsx

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* fix: types in client/src/components/formHelpers/index.tsx

* fix: types in client/src/templates/Introduction/super-block-intro.tsx

* fix: types in client/src/components/formHelpers/*

* fix: signInLoading and value types

* Update client/src/templates/Introduction/super-block-intro.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* Update client/src/components/formHelpers/index.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* Update client/src/components/formHelpers/index.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* Update client/src/components/formHelpers/index.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore(deps): update dependency rollup to v2.58.1

* fix: rename variables and fix imports for ts-migrate

* fix: remove `Type` suffix from the type definition.

* Update client/src/components/formHelpers/form.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-25 18:45:36 +01:00
Igor Cunha
2dd106eb2f feat(client): migrate to ts - (HelpModal, Preview, VideoModal, Side-Panel) (#42857)
* refactor: migrate HelpModal, Preview, VideoModal, Side-Panel

* refactor: import order

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-09-17 18:37:53 +01:00