Apply tag and creatorId filters to contract firestore search
This commit is contained in:
parent
80ea611ba8
commit
6a8887cbfb
|
@ -123,7 +123,7 @@ export function ContractSearch(props: {
|
|||
const indexName = `${indexPrefix}contracts-${sort}`
|
||||
|
||||
if (IS_PRIVATE_MANIFOLD) {
|
||||
return <ContractSearchFirestore querySortOptions={querySortOptions} />
|
||||
return <ContractSearchFirestore querySortOptions={querySortOptions} additionalFilter={additionalFilter} />
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
@ -14,9 +14,13 @@ export default function ContractSearchFirestore(props: {
|
|||
defaultSort: Sort
|
||||
shouldLoadFromStorage?: boolean
|
||||
}
|
||||
additionalFilter?: {
|
||||
creatorId?: string
|
||||
tag?: string
|
||||
}
|
||||
}) {
|
||||
const contracts = useContracts()
|
||||
const { querySortOptions } = props
|
||||
const { querySortOptions, additionalFilter } = props
|
||||
|
||||
const { initialSort, initialQuery } = useInitialQueryAndSort(querySortOptions)
|
||||
const [sort, setSort] = useState(initialSort || 'newest')
|
||||
|
@ -62,6 +66,20 @@ export default function ContractSearchFirestore(props: {
|
|||
matches = sortBy(matches, ({ volume24Hours }) => -1 * volume24Hours)
|
||||
}
|
||||
|
||||
if (additionalFilter) {
|
||||
const { creatorId, tag } = additionalFilter
|
||||
|
||||
if (creatorId) {
|
||||
matches = matches.filter((c) => c.creatorId === creatorId)
|
||||
}
|
||||
|
||||
if (tag) {
|
||||
matches = matches.filter((c) =>
|
||||
c.lowercaseTags.includes(tag.toLowerCase())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
{/* Show a search input next to a sort dropdown */}
|
||||
|
|
Loading…
Reference in New Issue
Block a user