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:
parent
cbf7958bc0
commit
7296a48fd6
@ -79,7 +79,11 @@ export default function AssetContent({
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<RelatedAssets tags={asset?.metadata?.tags} id={asset?.id} />
|
<RelatedAssets
|
||||||
|
tags={asset?.metadata?.tags}
|
||||||
|
dtAddress={asset?.datatokens[0]?.address}
|
||||||
|
owner={asset?.nft?.owner}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
</>
|
</>
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
import React, { ReactElement, useEffect, useState } from 'react'
|
import React, { ReactElement, useEffect, useState } from 'react'
|
||||||
import { generateBaseQuery, getFilterTerm } from '@utils/aquarius'
|
import { generateBaseQuery } from '@utils/aquarius'
|
||||||
import { useUserPreferences } from '@context/UserPreferences'
|
import { useUserPreferences } from '@context/UserPreferences'
|
||||||
import { SortTermOptions } from '../../../@types/aquarius/SearchQuery'
|
import { SortTermOptions } from '../../../@types/aquarius/SearchQuery'
|
||||||
import SectionQueryResult from '../../Home/SectionQueryResult'
|
import SectionQueryResult from '../../Home/SectionQueryResult'
|
||||||
|
|
||||||
export default function RelatedAssets({
|
export default function RelatedAssets({
|
||||||
tags,
|
tags,
|
||||||
id
|
dtAddress,
|
||||||
|
owner
|
||||||
}: {
|
}: {
|
||||||
tags: string[]
|
tags: string[]
|
||||||
id: string
|
dtAddress: string
|
||||||
|
owner: string
|
||||||
}): ReactElement {
|
}): ReactElement {
|
||||||
const { chainIds } = useUserPreferences()
|
const { chainIds } = useUserPreferences()
|
||||||
|
|
||||||
const [queryRelatedAssets, setQueryRelatedAssets] = useState<SearchQuery>()
|
const [queryRelatedAssets, setQueryRelatedAssets] = useState<SearchQuery>()
|
||||||
|
const modifiedTags = tags.toString().split(',').join(' OR ')
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const baseParamsSales = {
|
const baseParamsSales = {
|
||||||
@ -22,19 +24,35 @@ export default function RelatedAssets({
|
|||||||
size: 3
|
size: 3
|
||||||
},
|
},
|
||||||
nestedQuery: {
|
nestedQuery: {
|
||||||
must_not: {
|
must_not: [
|
||||||
match: {
|
{
|
||||||
id
|
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: {
|
sortOptions: {
|
||||||
sortBy: SortTermOptions.Orders
|
sortBy: SortTermOptions.Orders
|
||||||
} as SortOptions
|
} as SortOptions
|
||||||
} as BaseQueryParams
|
} as BaseQueryParams
|
||||||
setQueryRelatedAssets(generateBaseQuery(baseParamsSales))
|
setQueryRelatedAssets(generateBaseQuery(baseParamsSales))
|
||||||
}, [chainIds])
|
}, [chainIds, dtAddress, tags])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SectionQueryResult title="Related Assets:" query={queryRelatedAssets} />
|
<SectionQueryResult title="Related Assets:" query={queryRelatedAssets} />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user