Skip to content

Commit 80eeae3

Browse files
author
Frans Allen
committed
Fix: loads ads properly
1 parent daf0b83 commit 80eeae3

File tree

9 files changed

+90
-71
lines changed

9 files changed

+90
-71
lines changed

gatsby-browser.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
import './src/css/style.css';
22
import './src/css/markdown.css';
3+
import './src/css/ads.css';

src/components/features.js

+12-14
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
import { Link } from 'gatsby';
2-
import React from 'react';
3-
import Helmet from 'react-helmet';
2+
import React, { useEffect, useState } from 'react';
43
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
54
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
65
import * as Icons from '@fortawesome/free-solid-svg-icons';
6+
import loadCarbonAds from '../hooks/carbonads';
7+
8+
const Features = props => {
9+
const [loaded, setLoaded] = useState(false);
10+
11+
useEffect(() => {
12+
loadCarbonAds(() => {
13+
setLoaded(true);
14+
});
15+
});
716

8-
function Features() {
917
return (
1018
<Tabs
1119
className="mx-auto my-8"
@@ -602,17 +610,7 @@ function Features() {
602610
</div>
603611
</TabPanel>
604612

605-
<div id="carbonads-home" className="float-none mt-8 lg:float-right lg:block lg:-mt-40">
606-
<Helmet>
607-
<script
608-
key="carbonads"
609-
type="text/javascript"
610-
src="//cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio"
611-
id="_carbonads_js"
612-
async
613-
/>
614-
</Helmet>
615-
</div>
613+
<div id="ads" className="float-none mt-8 lg:float-right lg:block lg:-mt-32"></div>
616614
</div>
617615
</Tabs>
618616
);

src/css/ads.css

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
1-
#carbonads {
1+
#ads {
22
max-width: 300px;
33
}
44

5-
#carbonads > span {
5+
#ads > div > span {
66
position: relative;
77
display: block;
88
padding: 10px;
99
border-radius: 4px;
1010
background-color: #fff;
11+
border: 4px solid #eee;
1112
box-shadow: 0 1px 3px hsla(0, 0%, 0%, .05);
1213
}
1314

14-
#carbonads .carbon-wrap {
15+
#ads .carbon-wrap {
1516
display: flex;
1617
}
1718

18-
#carbonads .carbon-img {
19+
#ads .carbon-img {
1920
margin-right: 10px;
2021
line-height: 1;
2122
}
2223

23-
#carbonads .carbon-text {
24+
#ads .carbon-text {
2425
margin-bottom: 12px;
2526
color: #637381;
2627
text-decoration: none;
2728
font-size: 12px;
2829
line-height: 1.45;
2930
}
3031

31-
#carbonads .carbon-poweredby {
32+
#ads .carbon-poweredby {
3233
position: absolute;
3334
bottom: 10px;
3435
left: 152px;

src/css/style.css

-1
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,3 @@
6666
*/
6767
@import './custom.css';
6868
@import './buttons.css';
69-
@import './ads.css';

src/hooks/carbonads.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const loadCarbonAds = (callback) => {
2+
const existingScript = document.getElementById('_carbonads_js');
3+
4+
if (!existingScript) {
5+
const script = document.createElement('script');
6+
script.src = 'https://cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio';
7+
script.id = '_carbonads_js';
8+
script.async = 'true';
9+
10+
document.getElementById('ads').appendChild(script);
11+
script.onload = () => {
12+
if (callback) callback();
13+
};
14+
}
15+
16+
if (existingScript && callback) callback();
17+
};
18+
19+
export default loadCarbonAds;

src/pages/docs.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import React, { useState } from 'react';
2-
import Helmet from 'react-helmet';
1+
import React, { useEffect, useState } from 'react';
32
import { Link } from 'gatsby';
43

54
import Layout from '../components/layout';
@@ -9,8 +8,17 @@ import DocsNav from '../components/docs-nav';
98
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
109
import * as Regular from "@fortawesome/free-regular-svg-icons";
1110

11+
import loadCarbonAds from '../hooks/carbonads';
12+
1213
function DocsPage() {
1314
const [isExpanded, toggleExpansion] = useState(false);
15+
const [ loaded, setLoaded ] = useState(false);
16+
17+
useEffect(() => {
18+
loadCarbonAds(() => {
19+
setLoaded(true);
20+
});
21+
});
1422

1523
return (
1624
<Layout>
@@ -87,7 +95,7 @@ function DocsPage() {
8795
</div>
8896

8997
<aside className="lg:w-1/4 xl:2/5 mt-5 p-5">
90-
<div className="mb-10">
98+
<div className="mb-5">
9199
<a
92100
className="text-lg umami--click--link-docs-chat"
93101
href="https://twitter.com/staticallyio"
@@ -109,15 +117,7 @@ function DocsPage() {
109117
</a>
110118
</div>
111119

112-
<Helmet>
113-
<script
114-
key="carbonads"
115-
type="text/javascript"
116-
src="//cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio"
117-
id="_carbonads_js"
118-
async
119-
/>
120-
</Helmet>
120+
<div id="ads"></div>
121121
</aside>
122122
</section>
123123
</Layout>

src/pages/features.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import React, { useState } from 'react';
2-
import Helmet from 'react-helmet';
1+
import React, { useEffect, useState } from 'react';
32
import { Link } from 'gatsby';
43

54
import Layout from '../components/layout';
@@ -9,8 +8,17 @@ import DocsNav from '../components/docs-nav';
98
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
109
import * as Regular from "@fortawesome/free-regular-svg-icons";
1110

11+
import loadCarbonAds from '../hooks/carbonads';
12+
1213
function FeaturesPage() {
1314
const [isExpanded, toggleExpansion] = useState(false);
15+
const [ loaded, setLoaded ] = useState(false);
16+
17+
useEffect(() => {
18+
loadCarbonAds(() => {
19+
setLoaded(true);
20+
});
21+
});
1422

1523
return (
1624
<Layout>
@@ -89,7 +97,7 @@ function FeaturesPage() {
8997
</div>
9098

9199
<aside className="lg:w-1/4 xl:2/5 mt-5 p-5">
92-
<div className="mb-10">
100+
<div className="mb-5">
93101
<a
94102
className="text-lg umami--click--link-docs-chat"
95103
href="https://twitter.com/staticallyio"
@@ -111,15 +119,7 @@ function FeaturesPage() {
111119
</a>
112120
</div>
113121

114-
<Helmet>
115-
<script
116-
key="carbonads"
117-
type="text/javascript"
118-
src="//cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio"
119-
id="_carbonads_js"
120-
async
121-
/>
122-
</Helmet>
122+
<div id="ads"></div>
123123
</aside>
124124
</section>
125125
</Layout>

src/pages/wordpress.js

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Link } from 'gatsby';
2-
import React from 'react';
3-
import Helmet from 'react-helmet';
2+
import React, { useEffect, useState } from 'react';
43
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
54
import * as Regular from '@fortawesome/free-regular-svg-icons';
65
import * as Brands from '@fortawesome/free-brands-svg-icons';
@@ -9,7 +8,17 @@ import Layout from '../components/layout';
98
import SEO from '../components/seo';
109
import staticallyMark from '../../static/images/branding/statically-mark.svg';
1110

12-
function WordpressPage() {
11+
import loadCarbonAds from '../hooks/carbonads';
12+
13+
const WordpressPage = props => {
14+
const [loaded, setLoaded] = useState(false);
15+
16+
useEffect(() => {
17+
loadCarbonAds(() => {
18+
setLoaded(true);
19+
});
20+
});
21+
1322
return (
1423
<Layout>
1524
<SEO
@@ -42,15 +51,7 @@ function WordpressPage() {
4251
capabilities to images, cache and deliver quickly.
4352
</p>
4453

45-
<Helmet>
46-
<script
47-
key="carbonads"
48-
type="text/javascript"
49-
src="//cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio"
50-
id="_carbonads_js"
51-
async
52-
/>
53-
</Helmet>
54+
<div id="ads"></div>
5455
</div>
5556

5657
<div className="w-full sm:w-1/4 md:w-1/4 lg:w-1/4 m-auto">

src/templates/docs.js

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import React, { useState } from 'react';
2-
import Helmet from 'react-helmet';
1+
import React, { useEffect, useState } from 'react';
32
import { graphql } from 'gatsby';
43

54
import Layout from '../components/layout';
@@ -9,10 +8,19 @@ import DocsNav from '../components/docs-nav';
98
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
109
import * as Regular from "@fortawesome/free-regular-svg-icons";
1110

11+
import loadCarbonAds from '../hooks/carbonads';
12+
1213
function DocsPost({ data }) {
1314
const { markdownRemark } = data; // data.markdownRemark holds our post data
1415
const { frontmatter, html } = markdownRemark;
15-
const [isExpanded, toggleExpansion] = useState(false);
16+
const [ isExpanded, toggleExpansion ] = useState(false);
17+
const [ loaded, setLoaded ] = useState(false);
18+
19+
useEffect(() => {
20+
loadCarbonAds(() => {
21+
setLoaded(true);
22+
});
23+
});
1624

1725
return (
1826
<Layout>
@@ -54,8 +62,8 @@ function DocsPost({ data }) {
5462
</div>
5563
</div>
5664

57-
<aside className="lg:w-1/4 xl:2/5 mt-5 p-5">
58-
<div className="mb-10">
65+
<aside className="lg:w-1/4 xl:2/5 mt-10 p-5">
66+
<div className="mb-5">
5967
<a
6068
className="text-lg umami--click--link-docs-chat"
6169
href="https://twitter.com/staticallyio"
@@ -77,15 +85,7 @@ function DocsPost({ data }) {
7785
</a>
7886
</div>
7987

80-
<Helmet>
81-
<script
82-
key="carbonads"
83-
type="text/javascript"
84-
src="//cdn.carbonads.com/carbon.js?serve=CEBIV5Q7&amp;placement=staticallyio"
85-
id="_carbonads_js"
86-
async
87-
/>
88-
</Helmet>
88+
<div id="ads"></div>
8989
</aside>
9090
</section>
9191
</Layout>

0 commit comments

Comments
 (0)