Skip to content

Commit 5777dc9

Browse files
committed
cancel ad request on useEffect cleanup
1 parent 064ac4c commit 5777dc9

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

src/components/CarbonAd.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
import axios from 'axios'
2-
import React, { useEffect, useState } from 'react'
2+
import React, { useEffect, useState, useRef } from 'react'
33
import './CarbonAd.css'
44
import { getBaseApi } from '../utils/DataUtils'
55

66
export default function CarbonAd() {
77
const [ad, setAd] = useState()
8+
const cancelTokenSource = useRef()
89

910
useEffect(() => {
11+
cancelTokenSource.current = axios.CancelToken.source()
12+
1013
const setup = async () => {
1114
const userAgent = new URLSearchParams(navigator.userAgent).toString()
12-
const request = await axios.get(`${getBaseApi('')}/monetization/?useragent=${userAgent}`)
13-
if (request.data) {
14-
setAd(request.data.ads[0])
15-
}
15+
try {
16+
const request = await axios.get(`${getBaseApi('')}/monetization/?useragent=${userAgent}`, {
17+
cancelToken: cancelTokenSource.current.token,
18+
})
19+
if (request.data) {
20+
setAd(request.data.ads[0])
21+
}
22+
} catch (_) {}
1623
}
1724
setup()
25+
return () => {
26+
cancelTokenSource.current.cancel()
27+
}
1828
}, [])
1929

2030
const prependHTTP = (url) => {
2131
url = decodeURIComponent(url)
2232
if (!/^(?:f|ht)tps?\:\/\//.test(url)) {
23-
url = 'https://' + url
33+
url = 'https:' + url
2434
}
2535
return url
2636
}

0 commit comments

Comments
 (0)