Ignore filter on contract status when searching

This commit is contained in:
James Grugett 2022-07-29 17:37:53 -07:00
parent d6cf4332da
commit 003301762c

View File

@ -116,45 +116,49 @@ export function ContractSearch(props: {
track('select search category', { category: pill ?? 'all' }) track('select search category', { category: pill ?? 'all' })
} }
let facetFilters = [ let facetFilters = query
filter === 'open' ? 'isResolved:false' : '', ? []
filter === 'closed' ? 'isResolved:false' : '', : [
filter === 'resolved' ? 'isResolved:true' : '', filter === 'open' ? 'isResolved:false' : '',
additionalFilter?.creatorId filter === 'closed' ? 'isResolved:false' : '',
? `creatorId:${additionalFilter.creatorId}` filter === 'resolved' ? 'isResolved:true' : '',
: '', additionalFilter?.creatorId
additionalFilter?.tag ? `lowercaseTags:${additionalFilter.tag}` : '', ? `creatorId:${additionalFilter.creatorId}`
additionalFilter?.groupSlug : '',
? `groupLinks.slug:${additionalFilter.groupSlug}` additionalFilter?.tag ? `lowercaseTags:${additionalFilter.tag}` : '',
: '', additionalFilter?.groupSlug
pillFilter && pillFilter !== 'personal' && pillFilter !== 'your-bets' ? `groupLinks.slug:${additionalFilter.groupSlug}`
? `groupLinks.slug:${pillFilter}` : '',
: '', pillFilter && pillFilter !== 'personal' && pillFilter !== 'your-bets'
pillFilter === 'personal' ? `groupLinks.slug:${pillFilter}`
? // Show contracts in groups that the user is a member of : '',
memberGroupSlugs pillFilter === 'personal'
.map((slug) => `groupLinks.slug:${slug}`) ? // Show contracts in groups that the user is a member of
// Show contracts created by users the user follows memberGroupSlugs
.concat(follows?.map((followId) => `creatorId:${followId}`) ?? []) .map((slug) => `groupLinks.slug:${slug}`)
// Show contracts bet on by users the user follows // Show contracts created by users the user follows
.concat( .concat(follows?.map((followId) => `creatorId:${followId}`) ?? [])
follows?.map((followId) => `uniqueBettorIds:${followId}`) ?? [] // Show contracts bet on by users the user follows
) .concat(
: '', follows?.map((followId) => `uniqueBettorIds:${followId}`) ?? []
// Subtract contracts you bet on from For you. )
pillFilter === 'personal' && user ? `uniqueBettorIds:-${user.id}` : '', : '',
pillFilter === 'your-bets' && user // Subtract contracts you bet on from For you.
? // Show contracts bet on by the user pillFilter === 'personal' && user ? `uniqueBettorIds:-${user.id}` : '',
`uniqueBettorIds:${user.id}` pillFilter === 'your-bets' && user
: '', ? // Show contracts bet on by the user
].filter((f) => f) `uniqueBettorIds:${user.id}`
: '',
].filter((f) => f)
// Hack to make Algolia work. // Hack to make Algolia work.
facetFilters = ['', ...facetFilters] facetFilters = ['', ...facetFilters]
const numericFilters = [ const numericFilters = query
filter === 'open' ? `closeTime > ${Date.now()}` : '', ? []
filter === 'closed' ? `closeTime <= ${Date.now()}` : '', : [
].filter((f) => f) filter === 'open' ? `closeTime > ${Date.now()}` : '',
filter === 'closed' ? `closeTime <= ${Date.now()}` : '',
].filter((f) => f)
const indexName = `${indexPrefix}contracts-${sort}` const indexName = `${indexPrefix}contracts-${sort}`
const index = useMemo(() => searchClient.initIndex(indexName), [indexName]) const index = useMemo(() => searchClient.initIndex(indexName), [indexName])
@ -253,16 +257,18 @@ export function ContractSearch(props: {
placeholder={showPlaceHolder ? `Search ${filter} markets` : ''} placeholder={showPlaceHolder ? `Search ${filter} markets` : ''}
className="input input-bordered w-full" className="input input-bordered w-full"
/> />
<select {!query && (
className="select select-bordered" <select
value={filter} className="select select-bordered"
onChange={(e) => selectFilter(e.target.value as filter)} value={filter}
> onChange={(e) => selectFilter(e.target.value as filter)}
<option value="open">Open</option> >
<option value="closed">Closed</option> <option value="open">Open</option>
<option value="resolved">Resolved</option> <option value="closed">Closed</option>
<option value="all">All</option> <option value="resolved">Resolved</option>
</select> <option value="all">All</option>
</select>
)}
{!hideOrderSelector && ( {!hideOrderSelector && (
<select <select
className="select select-bordered" className="select select-bordered"