import Link from 'next/link'; import classNames from 'classnames'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faEnvelope, faClock, faHandshake, faArrowLeft } from '@fortawesome/free-solid-svg-icons'; import { SummaryContainer, Title, Description, Image, Header, Summary, VersionLink, VersionList, } from './style'; import SharePage from 'components/share-page'; import { BadgeLink, BadgesList, PrimaryBadge, SecondaryBadge, DarkBadge } from 'components/badges'; import GuideBody from 'components/guide-body'; import siteConfig from "storage/site"; const isActiveRoadmap = (loadedVersion, roadmapVersion) => ( (loadedVersion === roadmapVersion) || (loadedVersion === 'latest' && parseInt(roadmapVersion, 10) === (new Date()).getFullYear()) ); const UpcomingGuide = require(`../../storage/roadmaps/upcoming.md`).default; const RoadmapSummary = ({ roadmap }) => ( <SummaryContainer> <Header> <Title>{ roadmap.title }</Title> <Description>{ roadmap.description }</Description> <BadgesList className="mt-4"> <BadgeLink href="/roadmaps"> <DarkBadge> <FontAwesomeIcon icon={faArrowLeft}/> Other Roadmaps </DarkBadge> </BadgeLink> { roadmap.upcoming && ( <SecondaryBadge> <FontAwesomeIcon icon={faClock}/> Upcoming Roadmap </SecondaryBadge> ) } { !roadmap.upcoming && ( <BadgeLink href={`${siteConfig.url.issue}?title=[${roadmap.title}] - Title Here`} target="_blank"> <SecondaryBadge> <FontAwesomeIcon icon={faHandshake}/> Suggest Changes </SecondaryBadge> </BadgeLink> ) } <BadgeLink href="/signup"> <PrimaryBadge> <FontAwesomeIcon icon={faEnvelope}/> Send me Updates </PrimaryBadge> </BadgeLink> </BadgesList> <VersionList className="border-bottom"> { (roadmap.versions || []).map(versionItem => ( <Link href={ `${roadmap.url}/${versionItem}` } passHref key={ versionItem }> <VersionLink className={ classNames({ active: isActiveRoadmap(versionItem, roadmap.version), }) }>{ versionItem } Version</VersionLink> </Link> )) } </VersionList> </Header> <Summary> { roadmap.upcoming && ( <GuideBody> <UpcomingGuide /> </GuideBody> ) } { !roadmap.upcoming && ( <div className="container"> <Image src={ roadmap.picture } /> <SharePage title={ roadmap.description } url={ roadmap.url } /> </div> ) } </Summary> </SummaryContainer> ); export default RoadmapSummary;