Apply tag and creatorId filters to contract firestore search
This commit is contained in:
		
							parent
							
								
									8ced159d9a
								
							
						
					
					
						commit
						8d7bf6fb64
					
				|  | @ -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()) | ||||
|       ) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   const showTime = ['close-date', 'closed'].includes(sort) | ||||
|     ? 'close-date' | ||||
|     : sort === 'resolve-date' | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user