From e703f9b03d2362e954761999ee7bf5837496d602 Mon Sep 17 00:00:00 2001 From: claudiaHash <49017601+claudiaHash@users.noreply.github.com> Date: Thu, 19 Aug 2021 17:25:51 +0300 Subject: [PATCH] Display highest liquidity assets fix (#802) * correct offset set, empty result for no network selected * network-only policy used, logs deleted * cache and network policy used * Update src/components/pages/Home.tsx Co-authored-by: Matthias Kretschmann Co-authored-by: Matthias Kretschmann --- src/components/pages/Home.tsx | 38 +++++++++++++++++++++++------------ src/utils/subgraph.ts | 6 +++--- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/components/pages/Home.tsx b/src/components/pages/Home.tsx index 380ece41e..8c1b07225 100644 --- a/src/components/pages/Home.tsx +++ b/src/components/pages/Home.tsx @@ -21,10 +21,10 @@ import styles from './Home.module.css' async function getQueryHighest( chainIds: number[] ): Promise<[SearchQuery, string]> { - const dids = await getHighestLiquidityDIDs(chainIds) + const [dids, didsLength] = await getHighestLiquidityDIDs(chainIds) const queryHighest = { page: 1, - offset: dids.length, + offset: didsLength, query: { query_string: { query: `(${dids}) AND (${transformChainIdsListToQuery( @@ -72,6 +72,7 @@ function SectionQueryResult({ queryData?: string }) { const { appConfig } = useSiteMetadata() + const { chainIds } = useUserPreferences() const [result, setResult] = useState() const [loading, setLoading] = useState() @@ -80,20 +81,31 @@ function SectionQueryResult({ const source = axios.CancelToken.source() async function init() { - try { - setLoading(true) - const result = await queryMetadata(query, source.token) - if (queryData && result.totalResults > 0) { - const searchDIDs = queryData.split(' ') - const sortedAssets = sortElements(result.results, searchDIDs) - const overflow = sortedAssets.length - 9 - sortedAssets.splice(sortedAssets.length - overflow, overflow) - result.results = sortedAssets + if (chainIds.length === 0) { + const result: QueryResult = { + results: [], + page: 0, + totalPages: 0, + totalResults: 0 } setResult(result) setLoading(false) - } catch (error) { - Logger.log(error.message) + } else { + try { + setLoading(true) + const result = await queryMetadata(query, source.token) + if (queryData && result.totalResults > 0) { + const searchDIDs = queryData.split(' ') + const sortedAssets = sortElements(result.results, searchDIDs) + const overflow = sortedAssets.length - 9 + sortedAssets.splice(sortedAssets.length - overflow, overflow) + result.results = sortedAssets + } + setResult(result) + setLoading(false) + } catch (error) { + Logger.error(error.message) + } } } init() diff --git a/src/utils/subgraph.ts b/src/utils/subgraph.ts index 3c30638f7..0d11cef74 100644 --- a/src/utils/subgraph.ts +++ b/src/utils/subgraph.ts @@ -151,7 +151,7 @@ export function getQueryContext(chainId: number): OperationContext { url: `${getSubgraphUri( Number(chainId) )}/subgraphs/name/oceanprotocol/ocean-subgraph`, - requestPolicy: 'cache-first' + requestPolicy: 'cache-and-network' } return queryContext @@ -469,7 +469,7 @@ export async function getAssetsBestPrices( export async function getHighestLiquidityDIDs( chainIds: number[] -): Promise { +): Promise<[string, number]> { const didList: string[] = [] let highestLiquidiyAssets: HighestLiquidityAssetsPools[] = [] for (const chain of chainIds) { @@ -495,5 +495,5 @@ export async function getHighestLiquidityDIDs( .replace(/"/g, '') .replace(/(\[|\])/g, '') .replace(/(did:op:)/g, '0x') - return searchDids + return [searchDids, didList.length] }