Skip to content

Commit 2e8a38d

Browse files
authored
removing carbon ads accordingly when screen oreintation changes (json-schema-org#477)
* removing carbon ads when screen oreintation changes * Update * Update * Update
1 parent 80cf4c1 commit 2e8a38d

File tree

1 file changed

+26
-44
lines changed

1 file changed

+26
-44
lines changed

components/CarbonsAds.tsx

Lines changed: 26 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
import React, { useEffect, useRef } from 'react';
22
import { useRouter } from 'next/router';
33

4-
declare global {
5-
interface Window {
6-
_carbonads: {
7-
refresh: () => void;
8-
reload: (where: string, force_serve: boolean) => void;
9-
remove: (el: HTMLElement) => void;
10-
srv: () => void;
11-
};
12-
}
13-
}
14-
154
type Props = {
165
className?: string;
176
variant?: 'sidebar';
@@ -22,41 +11,28 @@ function CarbonAds({ className, variant = 'sidebar' }: Props) {
2211
const router = useRouter();
2312

2413
useEffect(() => {
25-
const mobileMediaQuery = window.matchMedia('(max-width: 1023px)');
26-
if (!mobileMediaQuery.matches) {
27-
const hasCarbonAds = document.querySelector('#carbonads');
28-
// Check if another ad is present to refresh
29-
if (hasCarbonAds) {
30-
window._carbonads.refresh();
31-
return;
32-
} else {
33-
// Check if the script is present (ad is not yet present) so that duplicate requests are not made to carbon ads
34-
const hasCarbonAdsScript = document.querySelector('#_carbonads_js');
35-
if (!hasCarbonAdsScript) {
36-
const carbonAdsScript = document.createElement('script');
37-
carbonAdsScript.id = '_carbonads_js';
38-
carbonAdsScript.type = 'text/javascript';
39-
carbonAdsScript.async = true;
40-
document
41-
.querySelector('#carbonads-container')
42-
?.appendChild(carbonAdsScript);
43-
carbonAdsScript.src = `//cdn.carbonads.com/carbon.js?serve=CE7I627Y&placement=json-schemaorg&rnd=${Math.random()}`;
44-
}
45-
}
14+
const hasCarbonAdsScript = document.querySelector('#_carbonads_js');
15+
if (!hasCarbonAdsScript) {
16+
const carbonAdsScript = document.createElement('script');
17+
carbonAdsScript.id = '_carbonads_js';
18+
carbonAdsScript.type = 'text/javascript';
19+
carbonAdsScript.async = true;
20+
document
21+
.querySelector('#carbonads-container')
22+
?.appendChild(carbonAdsScript);
23+
carbonAdsScript.src = `//cdn.carbonads.com/carbon.js?serve=CE7I627Y&placement=json-schemaorg&rnd=${Math.random()}`;
24+
}
4625

47-
const existingStyleSheet = document.querySelector('#_carbonads_css');
48-
if (existingStyleSheet) {
49-
existingStyleSheet.innerHTML = CarbonAds.stylesheet[variant];
50-
} else {
51-
const carbonAdsStyleSheet = document.createElement('style');
52-
carbonAdsStyleSheet.id = '_carbonads_css';
53-
carbonAdsStyleSheet.innerHTML = CarbonAds.stylesheet[variant];
54-
document
55-
.querySelector('#carbonads-container')
56-
?.appendChild(carbonAdsStyleSheet);
57-
}
26+
const existingStyleSheet = document.querySelector('#_carbonads_css');
27+
if (existingStyleSheet) {
28+
existingStyleSheet.innerHTML = CarbonAds.stylesheet[variant];
5829
} else {
59-
(carbonRef.current as HTMLElement).style.display = 'none';
30+
const carbonAdsStyleSheet = document.createElement('style');
31+
carbonAdsStyleSheet.id = '_carbonads_css';
32+
carbonAdsStyleSheet.innerHTML = CarbonAds.stylesheet[variant];
33+
document
34+
.querySelector('#carbonads-container')
35+
?.appendChild(carbonAdsStyleSheet);
6036
}
6137
}, [router.asPath]);
6238

@@ -115,6 +91,12 @@ CarbonAds.stylesheet = {
11591
margin-top: 4px;
11692
color: rgb(100 116 139);
11793
}
94+
95+
@media (max-width: 1023px) {
96+
#carbonads-container {
97+
display: none;
98+
}
99+
}
118100
`,
119101
};
120102

0 commit comments

Comments
 (0)