diff --git a/client/src/__mocks__/map-nodes.js b/client/src/__mocks__/challenge-nodes.js
similarity index 100%
rename from client/src/__mocks__/map-nodes.js
rename to client/src/__mocks__/challenge-nodes.js
diff --git a/client/src/__mocks__/fileMock.js b/client/src/__mocks__/fileMock.js
new file mode 100644
index 00000000000..f053ebf7976
--- /dev/null
+++ b/client/src/__mocks__/fileMock.js
@@ -0,0 +1 @@
+module.exports = {};
diff --git a/client/src/components/Header/Header.test.js b/client/src/components/Header/Header.test.js
index 67ee76b6eea..3797dd35154 100644
--- a/client/src/components/Header/Header.test.js
+++ b/client/src/components/Header/Header.test.js
@@ -30,8 +30,8 @@ describe('', () => {
it('renders to the DOM', () => {
expect(root).toBeTruthy();
});
- it('has 2 a tags', () => {
- expect(aTags.length === 2).toBeTruthy();
+ it('has 3 a tags', () => {
+ expect(aTags.length === 3).toBeTruthy();
});
it('has link to portfolio', () => {
diff --git a/client/src/components/Header/components/Login.js b/client/src/components/Header/components/Login.js
index 467576bb674..0b6c6643219 100644
--- a/client/src/components/Header/components/Login.js
+++ b/client/src/components/Header/components/Login.js
@@ -26,7 +26,7 @@ const createOnClick = (navigate, isSignedIn) => e => {
e.preventDefault();
gtagReportConversion();
if (isSignedIn) {
- return gatsbyNavigate('/');
+ return gatsbyNavigate('/learn');
}
return navigate(`${apiLocation}/signin`);
};
diff --git a/client/src/components/Header/components/NavLinks.js b/client/src/components/Header/components/NavLinks.js
index 80184615b11..245dddedb5e 100644
--- a/client/src/components/Header/components/NavLinks.js
+++ b/client/src/components/Header/components/NavLinks.js
@@ -5,6 +5,9 @@ export function NavLinks() {
return (
+ -
+ Projects
+
-
Light
diff --git a/client/src/components/Map/Map.js b/client/src/components/Map/Map.js
deleted file mode 100644
index fda9140dd62..00000000000
--- a/client/src/components/Map/Map.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { bindActionCreators } from 'redux';
-import PropTypes from 'prop-types';
-import uniq from 'lodash/uniq';
-import { createSelector } from 'reselect';
-
-import SuperBlock from './components/SuperBlock';
-import Spacer from '../helpers/Spacer';
-
-import './map.css';
-import { ChallengeNode } from '../../redux/propTypes';
-import { toggleSuperBlock, toggleBlock, resetExpansion } from './redux';
-import { currentChallengeIdSelector } from '../../redux';
-
-const propTypes = {
- currentChallengeId: PropTypes.string,
- introNodes: PropTypes.arrayOf(
- PropTypes.shape({
- fields: PropTypes.shape({ slug: PropTypes.string.isRequired }),
- frontmatter: PropTypes.shape({
- title: PropTypes.string.isRequired,
- block: PropTypes.string.isRequired
- })
- })
- ),
- nodes: PropTypes.arrayOf(ChallengeNode),
- resetExpansion: PropTypes.func,
- toggleBlock: PropTypes.func.isRequired,
- toggleSuperBlock: PropTypes.func.isRequired
-};
-
-const mapStateToProps = state => {
- return createSelector(
- currentChallengeIdSelector,
- currentChallengeId => ({
- currentChallengeId
- })
- )(state);
-};
-
-function mapDispatchToProps(dispatch) {
- return bindActionCreators(
- {
- resetExpansion,
- toggleSuperBlock,
- toggleBlock
- },
- dispatch
- );
-}
-
-export class Map extends Component {
- componentDidMount() {
- this.initializeExpandedState(this.props.currentChallengeId);
- }
-
- initializeExpandedState(currentChallengeId) {
- this.props.resetExpansion();
- const { superBlock, block } = currentChallengeId
- ? this.props.nodes.find(node => node.id === currentChallengeId)
- : this.props.nodes[0];
- this.props.toggleBlock(block);
- this.props.toggleSuperBlock(superBlock);
- }
-
- renderSuperBlocks(superBlocks) {
- const { nodes, introNodes } = this.props;
- return superBlocks.map(superBlock => (
-
- ));
- }
-
- render() {
- const { nodes } = this.props;
- const superBlocks = uniq(nodes.map(({ superBlock }) => superBlock));
- return (
-
-
- {this.renderSuperBlocks(superBlocks)}
-
-
-
- );
- }
-}
-
-Map.displayName = 'Map';
-Map.propTypes = propTypes;
-
-export default connect(
- mapStateToProps,
- mapDispatchToProps
-)(Map);
diff --git a/client/src/components/Map/Map.test.js b/client/src/components/Map/Map.test.js
index 3b3479f8bef..99680855386 100644
--- a/client/src/components/Map/Map.test.js
+++ b/client/src/components/Map/Map.test.js
@@ -6,8 +6,8 @@ import Enzyme, { shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import store from 'store';
-import { Map } from './Map';
-import mockNodes from '../../__mocks__/map-nodes';
+import { Map } from './';
+import mockChallengeNodes from '../../__mocks__/challenge-nodes';
import mockIntroNodes from '../../__mocks__/intro-nodes';
Enzyme.configure({ adapter: new Adapter() });
@@ -15,7 +15,7 @@ const renderer = new ShallowRenderer();
const baseProps = {
introNodes: mockIntroNodes,
- nodes: mockNodes,
+ nodes: mockChallengeNodes,
toggleBlock: () => {},
toggleSuperBlock: () => {},
resetExpansion: () => {}
@@ -25,7 +25,7 @@ test(' snapshot', () => {
const componentToRender = (