diff --git a/web/components/contract-search.tsx b/web/components/contract-search.tsx index 2f22918a..4d47ed41 100644 --- a/web/components/contract-search.tsx +++ b/web/components/contract-search.tsx @@ -123,7 +123,7 @@ export function ContractSearch(props: { const indexName = `${indexPrefix}contracts-${sort}` if (IS_PRIVATE_MANIFOLD) { - return + return } return ( diff --git a/web/pages/contract-search-firestore.tsx b/web/pages/contract-search-firestore.tsx index 98a0f6cb..71806dc1 100644 --- a/web/pages/contract-search-firestore.tsx +++ b/web/pages/contract-search-firestore.tsx @@ -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 (
{/* Show a search input next to a sort dropdown */}