Make experimental search by your followed groups/creators
This commit is contained in:
parent
c38d389aff
commit
73828a939c
|
@ -69,6 +69,7 @@ type AdditionalFilter = {
|
||||||
excludeContractIds?: string[]
|
excludeContractIds?: string[]
|
||||||
groupSlug?: string
|
groupSlug?: string
|
||||||
yourBets?: boolean
|
yourBets?: boolean
|
||||||
|
followed?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ContractSearch(props: {
|
export function ContractSearch(props: {
|
||||||
|
@ -295,6 +296,19 @@ function ContractSearchControls(props: {
|
||||||
const pillGroups: { name: string; slug: string }[] =
|
const pillGroups: { name: string; slug: string }[] =
|
||||||
memberPillGroups.length > 0 ? memberPillGroups : DEFAULT_CATEGORY_GROUPS
|
memberPillGroups.length > 0 ? memberPillGroups : DEFAULT_CATEGORY_GROUPS
|
||||||
|
|
||||||
|
const personalFilters = user
|
||||||
|
? [
|
||||||
|
// Show contracts in groups that the user is a member of.
|
||||||
|
memberGroupSlugs
|
||||||
|
.map((slug) => `groupLinks.slug:${slug}`)
|
||||||
|
// Or, show contracts created by users the user follows
|
||||||
|
.concat(follows?.map((followId) => `creatorId:${followId}`) ?? []),
|
||||||
|
|
||||||
|
// Subtract contracts you bet on, to show new ones.
|
||||||
|
`uniqueBettorIds:-${user.id}`,
|
||||||
|
]
|
||||||
|
: []
|
||||||
|
|
||||||
const additionalFilters = [
|
const additionalFilters = [
|
||||||
additionalFilter?.creatorId
|
additionalFilter?.creatorId
|
||||||
? `creatorId:${additionalFilter.creatorId}`
|
? `creatorId:${additionalFilter.creatorId}`
|
||||||
|
@ -307,6 +321,7 @@ function ContractSearchControls(props: {
|
||||||
? // Show contracts bet on by the user
|
? // Show contracts bet on by the user
|
||||||
`uniqueBettorIds:${user.id}`
|
`uniqueBettorIds:${user.id}`
|
||||||
: '',
|
: '',
|
||||||
|
...(additionalFilter?.followed ? personalFilters : []),
|
||||||
]
|
]
|
||||||
const facetFilters = query
|
const facetFilters = query
|
||||||
? additionalFilters
|
? additionalFilters
|
||||||
|
@ -323,17 +338,7 @@ function ContractSearchControls(props: {
|
||||||
state.pillFilter !== 'your-bets'
|
state.pillFilter !== 'your-bets'
|
||||||
? `groupLinks.slug:${state.pillFilter}`
|
? `groupLinks.slug:${state.pillFilter}`
|
||||||
: '',
|
: '',
|
||||||
state.pillFilter === 'personal'
|
...(state.pillFilter === 'personal' ? personalFilters : []),
|
||||||
? // Show contracts in groups that the user is a member of
|
|
||||||
memberGroupSlugs
|
|
||||||
.map((slug) => `groupLinks.slug:${slug}`)
|
|
||||||
// Show contracts created by users the user follows
|
|
||||||
.concat(follows?.map((followId) => `creatorId:${followId}`) ?? [])
|
|
||||||
: '',
|
|
||||||
// Subtract contracts you bet on from For you.
|
|
||||||
state.pillFilter === 'personal' && user
|
|
||||||
? `uniqueBettorIds:-${user.id}`
|
|
||||||
: '',
|
|
||||||
state.pillFilter === 'your-bets' && user
|
state.pillFilter === 'your-bets' && user
|
||||||
? // Show contracts bet on by the user
|
? // Show contracts bet on by the user
|
||||||
`uniqueBettorIds:${user.id}`
|
`uniqueBettorIds:${user.id}`
|
||||||
|
|
|
@ -64,7 +64,7 @@ const Home = () => {
|
||||||
<SearchSection
|
<SearchSection
|
||||||
key={id}
|
key={id}
|
||||||
label={'Your trades'}
|
label={'Your trades'}
|
||||||
sort={'prob-change-day'}
|
sort={'newest'}
|
||||||
user={user}
|
user={user}
|
||||||
yourBets
|
yourBets
|
||||||
/>
|
/>
|
||||||
|
@ -122,7 +122,7 @@ function SearchSection(props: {
|
||||||
<ContractSearch
|
<ContractSearch
|
||||||
user={user}
|
user={user}
|
||||||
defaultSort={sort}
|
defaultSort={sort}
|
||||||
additionalFilter={yourBets ? { yourBets: true } : undefined}
|
additionalFilter={yourBets ? { yourBets: true } : { followed: true }}
|
||||||
noControls
|
noControls
|
||||||
maxResults={6}
|
maxResults={6}
|
||||||
persistPrefix={`experimental-home-${sort}`}
|
persistPrefix={`experimental-home-${sort}`}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user