Add pill query param
This commit is contained in:
parent
3c2434a706
commit
c11a5c3c2f
|
@ -66,14 +66,13 @@ type AdditionalFilter = {
|
||||||
tag?: string
|
tag?: string
|
||||||
excludeContractIds?: string[]
|
excludeContractIds?: string[]
|
||||||
groupSlug?: string
|
groupSlug?: string
|
||||||
yourBets?: boolean
|
|
||||||
followed?: boolean
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ContractSearch(props: {
|
export function ContractSearch(props: {
|
||||||
user?: User | null
|
user?: User | null
|
||||||
defaultSort?: Sort
|
defaultSort?: Sort
|
||||||
defaultFilter?: filter
|
defaultFilter?: filter
|
||||||
|
defaultPill?: string
|
||||||
additionalFilter?: AdditionalFilter
|
additionalFilter?: AdditionalFilter
|
||||||
highlightOptions?: ContractHighlightOptions
|
highlightOptions?: ContractHighlightOptions
|
||||||
onContractClick?: (contract: Contract) => void
|
onContractClick?: (contract: Contract) => void
|
||||||
|
@ -97,6 +96,7 @@ export function ContractSearch(props: {
|
||||||
user,
|
user,
|
||||||
defaultSort,
|
defaultSort,
|
||||||
defaultFilter,
|
defaultFilter,
|
||||||
|
defaultPill,
|
||||||
additionalFilter,
|
additionalFilter,
|
||||||
onContractClick,
|
onContractClick,
|
||||||
hideOrderSelector,
|
hideOrderSelector,
|
||||||
|
@ -203,6 +203,7 @@ export function ContractSearch(props: {
|
||||||
className={headerClassName}
|
className={headerClassName}
|
||||||
defaultSort={defaultSort}
|
defaultSort={defaultSort}
|
||||||
defaultFilter={defaultFilter}
|
defaultFilter={defaultFilter}
|
||||||
|
defaultPill={defaultPill}
|
||||||
additionalFilter={additionalFilter}
|
additionalFilter={additionalFilter}
|
||||||
hideOrderSelector={hideOrderSelector}
|
hideOrderSelector={hideOrderSelector}
|
||||||
useQueryUrlParam={useQueryUrlParam}
|
useQueryUrlParam={useQueryUrlParam}
|
||||||
|
@ -230,6 +231,7 @@ function ContractSearchControls(props: {
|
||||||
className?: string
|
className?: string
|
||||||
defaultSort?: Sort
|
defaultSort?: Sort
|
||||||
defaultFilter?: filter
|
defaultFilter?: filter
|
||||||
|
defaultPill?: string
|
||||||
additionalFilter?: AdditionalFilter
|
additionalFilter?: AdditionalFilter
|
||||||
hideOrderSelector?: boolean
|
hideOrderSelector?: boolean
|
||||||
onSearchParametersChanged: (params: SearchParameters) => void
|
onSearchParametersChanged: (params: SearchParameters) => void
|
||||||
|
@ -241,6 +243,7 @@ function ContractSearchControls(props: {
|
||||||
className,
|
className,
|
||||||
defaultSort,
|
defaultSort,
|
||||||
defaultFilter,
|
defaultFilter,
|
||||||
|
defaultPill,
|
||||||
additionalFilter,
|
additionalFilter,
|
||||||
hideOrderSelector,
|
hideOrderSelector,
|
||||||
onSearchParametersChanged,
|
onSearchParametersChanged,
|
||||||
|
@ -279,7 +282,7 @@ function ContractSearchControls(props: {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
const [pill, setPill] = usePersistentState(
|
const [pill, setPill] = usePersistentState(
|
||||||
'',
|
defaultPill ?? '',
|
||||||
!useQueryUrlParam
|
!useQueryUrlParam
|
||||||
? undefined
|
? undefined
|
||||||
: {
|
: {
|
||||||
|
@ -326,11 +329,6 @@ function ContractSearchControls(props: {
|
||||||
additionalFilter?.groupSlug
|
additionalFilter?.groupSlug
|
||||||
? `groupLinks.slug:${additionalFilter.groupSlug}`
|
? `groupLinks.slug:${additionalFilter.groupSlug}`
|
||||||
: '',
|
: '',
|
||||||
additionalFilter?.yourBets && user
|
|
||||||
? // Show contracts bet on by the user
|
|
||||||
`uniqueBettorIds:${user.id}`
|
|
||||||
: '',
|
|
||||||
...(additionalFilter?.followed ? personalFilters : []),
|
|
||||||
]
|
]
|
||||||
const facetFilters = query
|
const facetFilters = query
|
||||||
? additionalFilters
|
? additionalFilters
|
||||||
|
|
|
@ -65,7 +65,7 @@ export default function Home() {
|
||||||
key={id}
|
key={id}
|
||||||
label={sort.value === 'newest' ? 'New for you' : sort.label}
|
label={sort.value === 'newest' ? 'New for you' : sort.label}
|
||||||
sort={sort.value}
|
sort={sort.value}
|
||||||
followed={sort.value === 'newest'}
|
pill={sort.value === 'newest' ? 'personal' : undefined}
|
||||||
user={user}
|
user={user}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
@ -94,24 +94,20 @@ function SearchSection(props: {
|
||||||
label: string
|
label: string
|
||||||
user: User | null | undefined | undefined
|
user: User | null | undefined | undefined
|
||||||
sort: Sort
|
sort: Sort
|
||||||
yourBets?: boolean
|
pill?: string
|
||||||
followed?: boolean
|
|
||||||
}) {
|
}) {
|
||||||
const { label, user, sort, yourBets, followed } = props
|
const { label, user, sort, pill } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Col>
|
<Col>
|
||||||
<SectionHeader label={label} href={`/home?s=${sort}`} />
|
<SectionHeader
|
||||||
|
label={label}
|
||||||
|
href={`/home?s=${sort}${pill ? `&p=${pill}` : ''}`}
|
||||||
|
/>
|
||||||
<ContractSearch
|
<ContractSearch
|
||||||
user={user}
|
user={user}
|
||||||
defaultSort={sort}
|
defaultSort={sort}
|
||||||
additionalFilter={
|
defaultPill={pill}
|
||||||
yourBets
|
|
||||||
? { yourBets: true }
|
|
||||||
: followed
|
|
||||||
? { followed: true }
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
noControls
|
noControls
|
||||||
maxResults={6}
|
maxResults={6}
|
||||||
persistPrefix={`experimental-home-${sort}`}
|
persistPrefix={`experimental-home-${sort}`}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user