Skip to content

Commit 13ee6e1

Browse files
committed
Adding sitewide banner
1 parent c65281c commit 13ee6e1

5 files changed

Lines changed: 53 additions & 0 deletions

File tree

content/sitewide/banner.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"visible": false,
3+
"text": "This is some text",
4+
"url": "https://designsystems.international"
5+
}

gatsby-config.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ module.exports = {
5353
]
5454
}
5555
},
56+
{
57+
resolve: `gatsby-source-filesystem`,
58+
options: {
59+
name: `sitewide`,
60+
path: path.resolve(__dirname, 'content/sitewide')
61+
}
62+
},
5663
{
5764
resolve: `gatsby-source-filesystem`,
5865
options: {

src/components/Banner.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import React, { memo } from 'react';
2+
import * as css from './Banner.module.css';
3+
4+
export const Banner = ({ text, url }) => {
5+
return (
6+
<a href={url} target="_blank" className={css.root}>
7+
{text}
8+
</a>
9+
);
10+
};
11+
12+
export default memo(Banner);

src/components/Banner.module.css

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.root {
2+
display: block;
3+
text-align: center;
4+
background-color: var(--processing-blue-gradient);
5+
padding: var(--margin-quarter);
6+
font-size: var(--text-small);
7+
color: var(--processing-blue-dark);
8+
margin-top: -2px;
9+
}

src/components/Header.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,35 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3+
import { graphql, useStaticQuery } from 'gatsby';
34

45
import Topbar from './Topbar';
56
import Navbar from './Navbar';
7+
import Banner from './Banner';
68

79
import * as css from './Header.module.css';
810

911
const Header = ({ siteTitle, scrolled }) => {
12+
const data = useStaticQuery(graphql`
13+
query {
14+
banner: file(
15+
name: { eq: "banner" }
16+
sourceInstanceName: { eq: "sitewide" }
17+
) {
18+
name
19+
childJson {
20+
visible
21+
url
22+
text
23+
}
24+
}
25+
}
26+
`);
27+
const bannerData = data.banner.childJson;
28+
1029
return (
1130
<header className={css.root}>
1231
<Topbar show={!scrolled} />
32+
{bannerData && bannerData.visible && <Banner {...bannerData} />}
1333
<Navbar siteTitle={siteTitle} scrolled={scrolled} />
1434
</header>
1535
);

0 commit comments

Comments
 (0)