computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1008 B
37 lines
1008 B
import Error from "next/error"; |
|
import GuideLayout from 'layouts/guide'; |
|
import { serverOnlyProps } from 'lib/server'; |
|
import GuideHeader from 'components/guide-header'; |
|
import GuideBody from 'components/guide-body'; |
|
import GuideFooter from 'components/guide-footer'; |
|
import { getRequestedGuide } from 'lib/guide'; |
|
import Helmet from 'components/helmet'; |
|
import siteConfig from 'storage/site'; |
|
|
|
const Guide = ({ guide, canonical }) => { |
|
if (!guide) { |
|
return <Error statusCode={ 404 } /> |
|
} |
|
|
|
return ( |
|
<GuideLayout> |
|
<Helmet |
|
title={ guide.title } |
|
description={ guide.description } |
|
canonical={ guide.canonical || canonical } |
|
/> |
|
<GuideHeader guide={ guide } /> |
|
<GuideBody guide={ guide } /> |
|
<GuideFooter guide={ guide } /> |
|
</GuideLayout> |
|
); |
|
}; |
|
|
|
Guide.getInitialProps = serverOnlyProps(async ({ req }) => { |
|
return { |
|
canonical: `${siteConfig.url.web}${req.url}`, |
|
guide: await getRequestedGuide(req), |
|
}; |
|
}); |
|
|
|
export default Guide;
|
|
|