diff --git a/packages/learn/src/components/Map/components/Block.js b/packages/learn/src/components/Map/components/Block.js
index 2482daef4c..495cef7f20 100644
--- a/packages/learn/src/components/Map/components/Block.js
+++ b/packages/learn/src/components/Map/components/Block.js
@@ -11,6 +11,7 @@ import { toggleMapModal, userSelector } from '../../../redux/app';
import Caret from '../../icons/Caret';
/* eslint-disable max-len */
import GreenPass from '../../../templates/Challenges/components/icons/GreenPass';
+import GreenNotCompleted from '../../../templates/Challenges/components/icons/GreenNotCompleted';
/* eslint-enable max-len */
const mapStateToProps = (state, ownProps) => {
const expandedSelector = makeExpandedBlockSelector(ownProps.blockDashedName);
@@ -44,6 +45,8 @@ const propTypes = {
toggleMapModal: PropTypes.func.isRequired
};
+const mapIconStyle = { height: '15px', marginRight: '10px', width: '15px' };
+
export class Block extends PureComponent {
constructor(...props) {
super(...props);
@@ -79,24 +82,36 @@ export class Block extends PureComponent {
renderChallenges(intro, challenges) {
// TODO: Split this into a Challenge Component and add tests
- return [intro].concat(challenges).map(challenge => (
-
- {
+ const completedClass = challenge.isCompleted
+ ? ' map-challenge-title-completed'
+ : '';
+ return (
+
- {challenge.title || challenge.frontmatter.title}
-
- {challenge.isCompleted ? (
-
+ {challenge.isCompleted ? (
+
+ ) : (
+
+ )}
- ) : null}
-
- ));
+
+ {challenge.title || challenge.frontmatter.title}
+
+
+ );
+ });
}
render() {
diff --git a/packages/learn/src/components/Map/components/__snapshots__/Block.test.js.snap b/packages/learn/src/components/Map/components/__snapshots__/Block.test.js.snap
index 6277a69ccb..91bf6b7f26 100644
--- a/packages/learn/src/components/Map/components/__snapshots__/Block.test.js.snap
+++ b/packages/learn/src/components/Map/components/__snapshots__/Block.test.js.snap
@@ -34,6 +34,19 @@ exports[`
+
+
+
-
- Challenge One
-
@@ -57,24 +64,12 @@ exports[`
-
-
-
- Challenge Two
-
-
-
+
+
+
Challenge Two
+
+
+
+
+
+
+ Challenge One
+
+
+
@@ -98,10 +133,18 @@ exports[`
+
+ Challenge Two
+
diff --git a/packages/learn/src/components/Map/map.css b/packages/learn/src/components/Map/map.css
index 6bcbddd8a2..4f12baba54 100644
--- a/packages/learn/src/components/Map/map.css
+++ b/packages/learn/src/components/Map/map.css
@@ -27,3 +27,7 @@ li.open > .map-title svg {
.map-challenge-title {
margin-bottom: 0.25rem;
}
+
+.map-challenge-title-completed {
+ opacity: 0.5;
+}
diff --git a/packages/learn/src/templates/Challenges/classic/Show.js b/packages/learn/src/templates/Challenges/classic/Show.js
index 36a8a94fc0..4e7908b618 100644
--- a/packages/learn/src/templates/Challenges/classic/Show.js
+++ b/packages/learn/src/templates/Challenges/classic/Show.js
@@ -86,16 +86,16 @@ const propTypes = {
class ShowClassic extends PureComponent {
constructor() {
- super()
+ super();
this.resizeProps = {
onStopResize: this.onStopResize.bind(this),
onResize: this.onResize.bind(this)
- }
+ };
this.state = {
resizing: false
- }
+ };
}
onResize() {
@@ -176,7 +176,9 @@ class ShowClassic extends PureComponent {
.map(key => files[key])
.map((file, index) => (
- {index !== 0 && }
+ {index !== 0 && (
+
+ )}
- {editors}
+
+ {editors}
+
- {showPreview ? : null}
+ {showPreview ? (
+
+ ) : null}
diff --git a/packages/learn/src/templates/Challenges/components/Preview.js b/packages/learn/src/templates/Challenges/components/Preview.js
index 84485d87e9..241640aa3b 100644
--- a/packages/learn/src/templates/Challenges/components/Preview.js
+++ b/packages/learn/src/templates/Challenges/components/Preview.js
@@ -12,16 +12,16 @@ const propTypes = {
class Preview extends PureComponent {
constructor(...props) {
- super(...props)
+ super(...props);
this.state = {
iframeStatus: this.props.disableIframe
- }
+ };
}
componentWillReceiveProps(nextProps) {
if (this.props.disableIframe !== nextProps.disableIframe) {
- this.setState({ iframeStatus: !this.state.iframeStatus })
+ this.setState({ iframeStatus: !this.state.iframeStatus });
}
}
diff --git a/packages/learn/src/templates/Challenges/components/icons/GreenNotCompleted.js b/packages/learn/src/templates/Challenges/components/icons/GreenNotCompleted.js
new file mode 100644
index 0000000000..fc248e85c3
--- /dev/null
+++ b/packages/learn/src/templates/Challenges/components/icons/GreenNotCompleted.js
@@ -0,0 +1,35 @@
+import React from 'react';
+
+const propTypes = {};
+
+function GreenNotCompleted(props) {
+ return (
+
+ );
+}
+
+GreenNotCompleted.displayName = 'GreenNotCompleted';
+GreenNotCompleted.propTypes = propTypes;
+
+export default GreenNotCompleted;
diff --git a/packages/learn/src/templates/Challenges/components/test-suite.css b/packages/learn/src/templates/Challenges/components/test-suite.css
index cf0b0001cd..62ac72d3a6 100644
--- a/packages/learn/src/templates/Challenges/components/test-suite.css
+++ b/packages/learn/src/templates/Challenges/components/test-suite.css
@@ -22,4 +22,9 @@
display: flex;
align-items: center;
margin-left: 3px;
+}
+
+.test-status-icon > svg {
+ width: 50px;
+ height: 50px;
}
\ No newline at end of file