diff --git a/client/src/assets/icons/index.tsx b/client/src/assets/icons/index.tsx index 2c1faa87a7..65018d72f3 100644 --- a/client/src/assets/icons/index.tsx +++ b/client/src/assets/icons/index.tsx @@ -39,4 +39,4 @@ const generateIconComponent = ( return ; }; -export { generateIconComponent }; +export { generateIconComponent, SuperBlock }; diff --git a/client/src/components/Map/index.js b/client/src/components/Map/index.tsx similarity index 77% rename from client/src/components/Map/index.js rename to client/src/components/Map/index.tsx index 6b7b761ffd..a1c0239c8f 100644 --- a/client/src/components/Map/index.js +++ b/client/src/components/Map/index.tsx @@ -1,24 +1,30 @@ import { graphql, useStaticQuery } from 'gatsby'; import i18next from 'i18next'; -import PropTypes from 'prop-types'; import React from 'react'; import envData from '../../../../config/env.json'; import { isAuditedCert } from '../../../../utils/is-audited'; -import { generateIconComponent } from '../../assets/icons'; - +import { generateIconComponent, SuperBlock } from '../../assets/icons'; import LinkButton from '../../assets/icons/link-button'; +import { ChallengeNodeType } from '../../redux/prop-types'; import { Link, Spacer } from '../helpers'; + import './map.css'; const { curriculumLocale } = envData; -const propTypes = { - currentSuperBlock: PropTypes.string, - forLanding: PropTypes.bool -}; +interface MapProps { + currentSuperBlock?: string; + forLanding?: boolean; +} -function createSuperBlockTitle(superBlock) { +interface MapData { + allChallengeNode: { + nodes: ChallengeNodeType[]; + }; +} + +function createSuperBlockTitle(superBlock: string) { const superBlockTitle = i18next.t(`intro:${superBlock}.title`); return superBlock === 'coding-interview-prep' ? i18next.t('learn.cert-map-estimates.coding-prep', { @@ -33,7 +39,7 @@ const linkSpacingStyle = { alignItems: 'center' }; -function renderLandingMap(nodes) { +function renderLandingMap(nodes: ChallengeNodeType[]) { nodes = nodes.filter(node => node.superBlock !== 'coding-interview-prep'); return (