diff --git a/src/pages/repos.js b/src/pages/repos.js index e756216..17117f7 100644 --- a/src/pages/repos.js +++ b/src/pages/repos.js @@ -12,20 +12,14 @@ import { IconContext } from "react-icons"; const IndexPage = () => { const [repos, setRepos] = useState(null); - const [afterTimeout, setAfterTimeout] = useState(false); + const [hadError, setHadError] = useState(false); useEffect(() => { - setTimeout(() => { - setAfterTimeout(true) - }, 5000); - fetch("https://raw.githubusercontent.com/recloudstream/cs-repos/master/repos-db.json") - .catch(err => { - setAfterTimeout(true) - }) + fetch("https://raw.githubusercontent.com/recloudstream/cs-repos/master/repos-db.json", { signal: AbortSignal.timeout(5000) }) + .catch(err => { setHadError(true) }) .then(r => r.json()) - .then(data => { - setRepos(data) - }) + .then(setRepos) + .catch(err => { setHadError(true) }) }, [setRepos]) return @@ -47,7 +41,7 @@ const IndexPage = () => { - {(!repos && !afterTimeout) && + {(!repos && !setHadError) &&
Fetching data... @@ -60,7 +54,7 @@ const IndexPage = () => { {repos.map((it, index) => )} } - {(!repos && afterTimeout) && + {(!repos && setHadError) &&