-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathTutorialOverview.tsx
71 lines (69 loc) · 1.78 KB
/
TutorialOverview.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import React from "react";
import { graphql } from "gatsby";
import Layout from "../layout";
import Chapter from "../chapter";
import { TutorialOverviewQuery } from "src/graphqlTypes";
import { Author } from "../Author";
interface PageTemplateProps {
data: TutorialOverviewQuery;
}
const PageTemplate: React.FunctionComponent<PageTemplateProps> = ({ data }) => {
return (
<Layout>
<div>
<img src={data!.overview!.frontmatter!.banner!} />
{/* TODO: implement author querying and info */}
<Author name="Kelsey Yim" job="Developer @ Novvum" info="hi" />
<h1>{data!.overview!.frontmatter!.tutorialTitle}</h1>
<div>
{data!.allMdx!.edges.map((mdx, index) => {
console.log(mdx.node.id);
let num = index + 1;
return (
<div>
<Chapter
num={num < 10 ? `0${num}` : num}
title={mdx.node.frontmatter!.pageTitle}
description={mdx.node.frontmatter!.description}
/>
</div>
);
})}
</div>
</div>
</Layout>
);
};
export const query = graphql`
query TutorialOverview($folderRegex: String) {
allMdx(
sort: { fields: fileAbsolutePath }
filter: {
frontmatter: { pageTitle: { ne: null } }
fileAbsolutePath: { regex: $folderRegex }
}
) {
totalCount
edges {
node {
id
frontmatter {
pageTitle
description
}
}
}
}
overview: mdx(
frontmatter: { tutorialTitle: { ne: null } }
fileAbsolutePath: { regex: $folderRegex }
) {
id
frontmatter {
tutorialTitle
banner
}
}
}
`;
export default PageTemplate;