diff --git a/client/src/templates/Challenges/codeally/show.tsx b/client/src/templates/Challenges/codeally/show.tsx index 49ec0dc0a7e..99bdf47bff4 100644 --- a/client/src/templates/Challenges/codeally/show.tsx +++ b/client/src/templates/Challenges/codeally/show.tsx @@ -15,10 +15,10 @@ import { Container, Col, Row, Alert } from '@freecodecamp/ui'; import Spacer from '../../../components/helpers/spacer'; import LearnLayout from '../../../components/layouts/learn'; import ChallengeTitle from '../components/challenge-title'; +import ChallengeHeading from '../components/challenge-heading'; import PrismFormatted from '../components/prism-formatted'; import { challengeTypes } from '../../../../../shared/config/challenge-types'; import CompletionModal from '../components/completion-modal'; -import GreenPass from '../../../assets/icons/green-pass'; import HelpModal from '../components/help-modal'; import Hotkeys from '../components/hotkeys'; import { hideCodeAlly, tryToShowCodeAlly } from '../../../redux/actions'; @@ -292,16 +292,10 @@ class ShowCodeAlly extends Component {
- {t('learn.step-1')} - {(isPartiallyCompleted || isCompleted) && ( - - )} +
{t('learn.runs-in-vm')} @@ -330,16 +324,10 @@ class ShowCodeAlly extends Component { <>
- {t('learn.step-2')} - {isCompleted && ( - - )} +
{t('learn.submit-public-url')} diff --git a/client/src/templates/Challenges/components/challenge-heading.css b/client/src/templates/Challenges/components/challenge-heading.css new file mode 100644 index 00000000000..c125527c506 --- /dev/null +++ b/client/src/templates/Challenges/components/challenge-heading.css @@ -0,0 +1,10 @@ +.challenge-heading-wrap { + display: flex; + gap: 7px; + align-items: center; + justify-content: center; +} + +.challenge-heading { + font-size: 16px; +} diff --git a/client/src/templates/Challenges/components/challenge-heading.tsx b/client/src/templates/Challenges/components/challenge-heading.tsx new file mode 100644 index 00000000000..8ecc2d357c9 --- /dev/null +++ b/client/src/templates/Challenges/components/challenge-heading.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import GreenPass from '../../../assets/icons/green-pass'; + +import './challenge-heading.css'; + +interface ChallengeHeadingProps { + heading: string; + isCompleted?: boolean; +} + +function ChallengeHeading({ + heading, + isCompleted = false +}: ChallengeHeadingProps): JSX.Element { + const { t } = useTranslation(); + + return ( +
+

{t(heading)}

+ {isCompleted && } +
+ ); +} + +ChallengeHeading.displayName = 'ChallengeHeading'; + +export default ChallengeHeading; diff --git a/client/src/templates/Challenges/dialogue/show.tsx b/client/src/templates/Challenges/dialogue/show.tsx index 915468c2285..2f89e91dda7 100644 --- a/client/src/templates/Challenges/dialogue/show.tsx +++ b/client/src/templates/Challenges/dialogue/show.tsx @@ -18,6 +18,8 @@ import LearnLayout from '../../../components/layouts/learn'; import { ChallengeNode, ChallengeMeta } from '../../../redux/prop-types'; import Hotkeys from '../components/hotkeys'; import CompletionModal from '../components/completion-modal'; +import ChallengeTitle from '../components/challenge-title'; +import ChallengeHeading from '../components/challenge-heading'; import HelpModal from '../components/help-modal'; import PrismFormatted from '../components/prism-formatted'; import { @@ -181,6 +183,7 @@ class ShowDialogue extends Component { block, fields: { blockName }, assignments, + translationPending, scene } } @@ -189,6 +192,7 @@ class ShowDialogue extends Component { pageContext: { challengeMeta: { nextChallengePath, prevChallengePath } }, + isChallengeCompleted, t } = this.props; @@ -211,7 +215,13 @@ class ShowDialogue extends Component { -

{title}

+ + + {title} + @@ -219,8 +229,9 @@ class ShowDialogue extends Component { {scene && } + -

{t('learn.assignments')}

+
{assignments.map((assignment, index) => (