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 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

View File

@ -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}`}