From f5c13436ccfbf185126f81fe11b61b8dec59b11d Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Thu, 21 Oct 2021 15:14:36 +0200 Subject: [PATCH] feat: show project preview on MultiFile challenges --- client/gatsby-node.js | 1 + client/src/templates/Challenges/classic/show.tsx | 6 +++--- .../templates/Challenges/redux/execute-challenge-saga.js | 4 ++-- client/utils/gatsby/challenge-page-creator.js | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/client/gatsby-node.js b/client/gatsby-node.js index f6f4bbfac3..ced7ee5195 100644 --- a/client/gatsby-node.js +++ b/client/gatsby-node.js @@ -101,6 +101,7 @@ exports.createPages = function createPages({ graphql, actions, reporter }) { superBlock superOrder template + usesMultifileEditor } } } diff --git a/client/src/templates/Challenges/classic/show.tsx b/client/src/templates/Challenges/classic/show.tsx index d8951b859b..806f507678 100644 --- a/client/src/templates/Challenges/classic/show.tsx +++ b/client/src/templates/Challenges/classic/show.tsx @@ -96,7 +96,7 @@ interface ShowClassicProps { output: string[]; pageContext: { challengeMeta: ChallengeMeta; - projectPreview: PreviewConfig & { isFirstChallengeInBlock: boolean }; + projectPreview: PreviewConfig & { showProjectPreview: boolean }; }; t: TFunction; tests: Test[]; @@ -255,13 +255,13 @@ class ShowClassic extends Component { }, pageContext: { challengeMeta, - projectPreview: { isFirstChallengeInBlock } + projectPreview: { showProjectPreview } } } = this.props; initConsole(''); createFiles(challengeFiles ?? []); initTests(tests); - if (isFirstChallengeInBlock) openModal('projectPreview'); + if (showProjectPreview) openModal('projectPreview'); updateChallengeMeta({ ...challengeMeta, title, diff --git a/client/src/templates/Challenges/redux/execute-challenge-saga.js b/client/src/templates/Challenges/redux/execute-challenge-saga.js index e7d0438833..98cc80ac13 100644 --- a/client/src/templates/Challenges/redux/execute-challenge-saga.js +++ b/client/src/templates/Challenges/redux/execute-challenge-saga.js @@ -240,8 +240,8 @@ function* previewChallengeSaga({ flushLogs = true } = {}) { // TODO: remove everything about proxyLogger here function* previewProjectSolutionSaga({ payload }) { if (!payload) return; - const { isFirstChallengeInBlock, challengeData } = payload; - if (!isFirstChallengeInBlock) return; + const { showProjectPreview, challengeData } = payload; + if (!showProjectPreview) return; const logProxy = yield channel(); const proxyLogger = args => logProxy.put(args); diff --git a/client/utils/gatsby/challenge-page-creator.js b/client/utils/gatsby/challenge-page-creator.js index d3d328613a..e48509f591 100644 --- a/client/utils/gatsby/challenge-page-creator.js +++ b/client/utils/gatsby/challenge-page-creator.js @@ -100,7 +100,7 @@ exports.createChallengePages = function (createPage) { }; function getProjectPreviewConfig(challenge, allChallengeEdges) { - const { block, challengeOrder } = challenge; + const { block, challengeOrder, usesMultifileEditor } = challenge; const challengesInBlock = allChallengeEdges .filter(({ node }) => node.block === block) @@ -120,7 +120,7 @@ function getProjectPreviewConfig(challenge, allChallengeEdges) { ); return { - isFirstChallengeInBlock: challengeOrder === 0, + showProjectPreview: challengeOrder === 0 && usesMultifileEditor, challengeData: { challengeType: lastChallenge.challengeType, challengeFiles: projectPreviewChallengeFiles,