Add pill query param

This commit is contained in:
James Grugett 2022-09-13 21:37:36 -05:00
parent 3c2434a706
commit c11a5c3c2f
2 changed files with 14 additions and 20 deletions

View File

@ -66,14 +66,13 @@ type AdditionalFilter = {
tag?: string
excludeContractIds?: string[]
groupSlug?: string
yourBets?: boolean
followed?: boolean
}
export function ContractSearch(props: {
user?: User | null
defaultSort?: Sort
defaultFilter?: filter
defaultPill?: string
additionalFilter?: AdditionalFilter
highlightOptions?: ContractHighlightOptions
onContractClick?: (contract: Contract) => void
@ -97,6 +96,7 @@ export function ContractSearch(props: {
user,
defaultSort,
defaultFilter,
defaultPill,
additionalFilter,
onContractClick,
hideOrderSelector,
@ -203,6 +203,7 @@ export function ContractSearch(props: {
className={headerClassName}
defaultSort={defaultSort}
defaultFilter={defaultFilter}
defaultPill={defaultPill}
additionalFilter={additionalFilter}
hideOrderSelector={hideOrderSelector}
useQueryUrlParam={useQueryUrlParam}
@ -230,6 +231,7 @@ function ContractSearchControls(props: {
className?: string
defaultSort?: Sort
defaultFilter?: filter
defaultPill?: string
additionalFilter?: AdditionalFilter
hideOrderSelector?: boolean
onSearchParametersChanged: (params: SearchParameters) => void
@ -241,6 +243,7 @@ function ContractSearchControls(props: {
className,
defaultSort,
defaultFilter,
defaultPill,
additionalFilter,
hideOrderSelector,
onSearchParametersChanged,
@ -279,7 +282,7 @@ function ContractSearchControls(props: {
}
)
const [pill, setPill] = usePersistentState(
'',
defaultPill ?? '',
!useQueryUrlParam
? undefined
: {
@ -326,11 +329,6 @@ function ContractSearchControls(props: {
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
? additionalFilters

View File

@ -65,7 +65,7 @@ export default function Home() {
key={id}
label={sort.value === 'newest' ? 'New for you' : sort.label}
sort={sort.value}
followed={sort.value === 'newest'}
pill={sort.value === 'newest' ? 'personal' : undefined}
user={user}
/>
)
@ -94,24 +94,20 @@ function SearchSection(props: {
label: string
user: User | null | undefined | undefined
sort: Sort
yourBets?: boolean
followed?: boolean
pill?: string
}) {
const { label, user, sort, yourBets, followed } = props
const { label, user, sort, pill } = props
return (
<Col>
<SectionHeader label={label} href={`/home?s=${sort}`} />
<SectionHeader
label={label}
href={`/home?s=${sort}${pill ? `&p=${pill}` : ''}`}
/>
<ContractSearch
user={user}
defaultSort={sort}
additionalFilter={
yourBets
? { yourBets: true }
: followed
? { followed: true }
: undefined
}
defaultPill={pill}
noControls
maxResults={6}
persistPrefix={`experimental-home-${sort}`}