1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

Adjusting query to show assets from the same publisher but not the exact same asset

This commit is contained in:
Jamie Hewitt 2022-10-19 13:46:21 +03:00
parent cbf7958bc0
commit 7296a48fd6
2 changed files with 33 additions and 11 deletions

View File

@ -79,7 +79,11 @@ export default function AssetContent({
</Button>
</div>
)}
<RelatedAssets tags={asset?.metadata?.tags} id={asset?.id} />
<RelatedAssets
tags={asset?.metadata?.tags}
dtAddress={asset?.datatokens[0]?.address}
owner={asset?.nft?.owner}
/>
</div>
</article>
</>

View File

@ -1,19 +1,21 @@
import React, { ReactElement, useEffect, useState } from 'react'
import { generateBaseQuery, getFilterTerm } from '@utils/aquarius'
import { generateBaseQuery } from '@utils/aquarius'
import { useUserPreferences } from '@context/UserPreferences'
import { SortTermOptions } from '../../../@types/aquarius/SearchQuery'
import SectionQueryResult from '../../Home/SectionQueryResult'
export default function RelatedAssets({
tags,
id
dtAddress,
owner
}: {
tags: string[]
id: string
dtAddress: string
owner: string
}): ReactElement {
const { chainIds } = useUserPreferences()
const [queryRelatedAssets, setQueryRelatedAssets] = useState<SearchQuery>()
const modifiedTags = tags.toString().split(',').join(' OR ')
useEffect(() => {
const baseParamsSales = {
@ -22,19 +24,35 @@ export default function RelatedAssets({
size: 3
},
nestedQuery: {
must_not: {
match: {
id
must_not: [
{
query_string: {
query: `${dtAddress.toLowerCase()}`,
fields: ['datatokens.address']
}
}
}
],
must: [
{
query_string: {
query: modifiedTags,
fields: ['metadata.tags']
}
},
{
query_string: {
query: `${owner.toLowerCase()}`,
fields: ['nft.owner']
}
}
]
},
filters: [getFilterTerm('metadata.tags', tags)],
sortOptions: {
sortBy: SortTermOptions.Orders
} as SortOptions
} as BaseQueryParams
setQueryRelatedAssets(generateBaseQuery(baseParamsSales))
}, [chainIds])
}, [chainIds, dtAddress, tags])
return (
<SectionQueryResult title="Related Assets:" query={queryRelatedAssets} />