File tree Expand file tree Collapse file tree 1 file changed +38
-10
lines changed
Expand file tree Collapse file tree 1 file changed +38
-10
lines changed Original file line number Diff line number Diff line change 11import React from 'react'
22
3+ function buildScript ( src , attrs = { } ) {
4+ if ( typeof document !== 'undefined' ) {
5+ const script = document . createElement ( 'script' )
6+ script . async = true
7+ script . defer = true
8+ Object . keys ( attrs ) . forEach ( attr => script . setAttribute ( attr , attrs [ attr ] ) )
9+ script . src = src
10+
11+ return script
12+ }
13+ }
14+
315export default function CarbonAds ( ) {
16+ const ref = React . useRef ( )
17+
418 React . useEffect ( ( ) => {
5- if ( window . _carbonads ) {
6- window . _carbonads . refresh ( )
7- }
19+ const script = buildScript (
20+ '//cdn.carbonads.com/carbon.js?serve=CESDV23N&placement=react-querytanstackcom' ,
21+ {
22+ type : 'text/javascript' ,
23+ id : '_carbonads_js' ,
24+ }
25+ )
26+
27+ ref . current . appendChild ( script )
828 } , [ ] )
929
10- return (
11- < div
12- dangerouslySetInnerHTML = { {
13- __html : `<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CESDV23N&placement=react-querytanstackcom" id="_carbonads_js"></script>` ,
14- } }
15- > </ div >
16- )
30+ React . useEffect ( ( ) => {
31+ const interval = setInterval ( ( ) => {
32+ ; [ ...ref . current . children ] . forEach ( child => {
33+ if ( child . id . startsWith ( 'carbonads_' ) ) {
34+ ref . current . removeChild ( child )
35+ }
36+ } )
37+ } , 100 )
38+
39+ return ( ) => {
40+ clearInterval ( interval )
41+ }
42+ } )
43+
44+ return < div ref = { ref } />
1745}
You can’t perform that action at this time.
0 commit comments