implement pr feedback

This commit is contained in:
saml33 2023-04-06 10:22:20 +10:00
parent b5a30fbe89
commit a67dccd3bd
4 changed files with 6 additions and 55 deletions

View File

@ -35,7 +35,7 @@ const MangoPerpStatsCharts = () => {
// }, [perpMarkets])
const totalFeeValues = useMemo(() => {
if (!perpStats.length) return []
if (!perpStats || !perpStats.length) return []
const values = perpStats.reduce((a: FeeValueItem[], c: PerpStatsItem) => {
const hasDate = a.find((d: FeeValueItem) => d.date === c.date_hour)
if (!hasDate) {
@ -52,7 +52,7 @@ const MangoPerpStatsCharts = () => {
}, [perpStats])
const totalOpenInterestValues = useMemo(() => {
if (!perpStats.length) return []
if (!perpStats || !perpStats.length) return []
const values = perpStats.reduce((a: OiValueItem[], c: PerpStatsItem) => {
const hasDate = a.find((d: OiValueItem) => d.date === c.date_hour)
if (!hasDate) {

View File

@ -17,15 +17,15 @@ const fetchBirdeyePrices = async (
)
const promises = []
const queryEnd = Math.floor(Date.now() / 1000)
const queryStart = queryEnd - 86400
for (const mint of mints) {
const queryEnd = Math.floor(Date.now() / 1000)
const queryStart = queryEnd - 86400
const query = `defi/history_price?address=${mint}&address_type=pair&type=30m&time_from=${queryStart}&time_to=${queryEnd}`
promises.push(makeApiRequest(query))
}
const responses = await Promise.all(promises)
if (responses.length) {
if (responses?.length) {
return responses.map((res) => ({
data: res.data.items,
mint: res.data.items[0].address,

View File

@ -1,49 +0,0 @@
import { useQuery } from '@tanstack/react-query'
import { makeApiRequest } from 'apis/birdeye/helpers'
import { Token } from 'types/jupiter'
import { BirdeyePriceResponse } from './useBirdeyeMarketPrices'
import useJupiterMints from './useJupiterMints'
const fetchBirdeyePrices = async (
mangoTokens: Token[]
): Promise<{ data: BirdeyePriceResponse[]; mint: string }[]> => {
const mints = mangoTokens.map((token) => token.address)
const promises = []
for (const mint of mints) {
const queryEnd = Math.floor(Date.now() / 1000)
const queryStart = queryEnd - 86400
const query = `defi/history_price?address=${mint}&address_type=token&type=30m&time_from=${queryStart}&time_to=${queryEnd}`
promises.push(makeApiRequest(query))
}
const responses = await Promise.all(promises)
if (responses.length) {
return responses.map((res) => ({
data: res.data.items,
mint: res.data.items[0].address,
}))
}
return []
}
export const useBirdeyeTokenPrices = () => {
const { mangoTokens } = useJupiterMints()
const res = useQuery(
['birdeye-token-prices'],
() => fetchBirdeyePrices(mangoTokens),
{
cacheTime: 1000 * 60 * 15,
staleTime: 1000 * 60 * 10,
retry: 3,
enabled: !!mangoTokens?.length,
refetchOnWindowFocus: false,
}
)
return {
isLoading: res?.isLoading,
data: res?.data || [],
}
}

View File

@ -163,7 +163,7 @@ export type MangoStore = {
perpMarkets: PerpMarket[]
perpStats: {
loading: boolean
data: PerpStatsItem[]
data: PerpStatsItem[] | null
}
profile: {
details: ProfileDetails | null