implement pr feedback
This commit is contained in:
parent
b5a30fbe89
commit
a67dccd3bd
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 || [],
|
||||
}
|
||||
}
|
|
@ -163,7 +163,7 @@ export type MangoStore = {
|
|||
perpMarkets: PerpMarket[]
|
||||
perpStats: {
|
||||
loading: boolean
|
||||
data: PerpStatsItem[]
|
||||
data: PerpStatsItem[] | null
|
||||
}
|
||||
profile: {
|
||||
details: ProfileDetails | null
|
||||
|
|
Loading…
Reference in New Issue