import { BigNumber } from 'ethers'; import { useCallback, useState, useEffect } from 'react'; import useUnicornFinance from './useUnicornFinance'; import config from '../config'; const useTotalNodes = (contract: string, sectionInUI: number) => { const unicornFinance = useUnicornFinance(); const [poolAPRs, setPoolAPRs] = useState([]); const fetchNodes = useCallback(async () => { setPoolAPRs(await unicornFinance.getTotalNodes(contract)); }, [unicornFinance, contract]); useEffect(() => { if (sectionInUI === 3) { fetchNodes().catch((err) => console.error(`Failed to fetch APR info: ${err.stack}`)); const refreshInterval = setInterval(fetchNodes, config.refreshInterval); return () => clearInterval(refreshInterval); } }, [setPoolAPRs, unicornFinance, fetchNodes, sectionInUI]); return poolAPRs; }; export default useTotalNodes;