Skip to content

Commit de44a6c

Browse files
authored
Merge pull request #83 from newrelic/component-page-skeleton
Component page skeleton
2 parents 0b6400b + 3b96ec4 commit de44a6c

File tree

8 files changed

+81
-64
lines changed

8 files changed

+81
-64
lines changed

src/components/Sidebar.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const renderNav = (page, index) => (
2121
);
2222

2323
const Sidebar = ({ className, pages, isOpen, toggle }) => (
24-
<aside className={cx(styles.Sidebar, className, { [styles.isOpen]: isOpen })}>
24+
<aside className={cx(styles.sidebar, className, { [styles.isOpen]: isOpen })}>
2525
<div className={styles.top}>
2626
<h3>Pages</h3>
2727
<button

src/data/sidenav.json

+15-10
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
[
22
{
33
"displayName": "Guides",
4-
"url": "/guides"
4+
"url": "/guides",
5+
"children": [
6+
{
7+
"displayName": "Example",
8+
"url": "/guides/example"
9+
}
10+
]
511
},
612
{
7-
"displayName": "Foo",
13+
"displayName": "UI Components",
814
"children": [
915
{
10-
"displayName": "Baz",
11-
"url": "/foo/baz",
12-
"children": []
13-
},
14-
{
15-
"displayName": "Bar",
16-
"url": "/foo/bar",
17-
"children": []
16+
"displayName": "Form Components",
17+
"children": [
18+
{
19+
"displayName": "Button",
20+
"url": "/components/button"
21+
}
22+
]
1823
}
1924
]
2025
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
path: '/components/button'
3+
title: 'Button'
4+
description: 'A button component!'
5+
component: 'Button'
6+
template: 'ReferenceTemplate'
7+
---
8+

src/markdown-pages/foo-bar-baz.mdx

-11
This file was deleted.

src/markdown-pages/foo-bar.mdx

-11
This file was deleted.

src/pages/reference.js

-29
This file was deleted.

src/templates/ReferenceTemplate.js

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import React, { useState } from 'react';
2+
import { graphql } from 'gatsby';
3+
import PropTypes from 'prop-types';
4+
import Container from '../components/Container';
5+
import Layout from '../components/Layout';
6+
import Sidebar from '../components/Sidebar';
7+
import SEO from '../components/Seo';
8+
9+
import pages from '../data/sidenav.json';
10+
11+
import styles from './ReferenceTemplate.module.scss';
12+
13+
const ReferenceTemplate = ({ data }) => {
14+
const [isOpen, setIsOpen] = useState(false);
15+
const { mdx } = data;
16+
const { frontmatter } = mdx;
17+
const { title, description, component } = frontmatter;
18+
19+
return (
20+
<Layout>
21+
<SEO title={title} description={description} />
22+
<Container className={styles.container}>
23+
<Sidebar
24+
className={styles.sidebar}
25+
pages={pages}
26+
isOpen={isOpen}
27+
toggle={() => setIsOpen(!isOpen)}
28+
/>
29+
<main className={styles.content}>
30+
<h1>{component}</h1>
31+
</main>
32+
</Container>
33+
</Layout>
34+
);
35+
};
36+
37+
ReferenceTemplate.propTypes = {
38+
data: PropTypes.object,
39+
};
40+
41+
export const pageQuery = graphql`
42+
query($path: String!) {
43+
mdx(frontmatter: { path: { eq: $path } }) {
44+
body
45+
frontmatter {
46+
path
47+
title
48+
description
49+
component
50+
}
51+
}
52+
}
53+
`;
54+
55+
export default ReferenceTemplate;

src/pages/reference.module.scss renamed to src/templates/ReferenceTemplate.module.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.container {
22
display: grid;
3-
grid-template-columns: 1fr 3fr;
3+
grid-template-columns: auto 3fr;
4+
grid-column-gap: 2rem;
45
grid-template-areas: 'sidebar main';
56

67
@media (max-width: 760px) {
@@ -16,4 +17,3 @@
1617
.sidebar {
1718
grid-area: sidebar;
1819
}
19-

0 commit comments

Comments
 (0)