Style changes suggested by James

This commit is contained in:
Marshall Polaris 2022-08-14 22:02:22 -07:00
parent 5fe39590b5
commit a4b739a772
3 changed files with 13 additions and 9 deletions

View File

@ -152,7 +152,8 @@ export function ContractSearch(props: {
searchParameters.current = params searchParameters.current = params
performQuery(true) performQuery(true)
}, 100) }, 100)
) ).current
const contracts = pages const contracts = pages
.flat() .flat()
.filter((c) => !additionalFilter?.excludeContractIds?.includes(c.id)) .filter((c) => !additionalFilter?.excludeContractIds?.includes(c.id))
@ -172,7 +173,7 @@ export function ContractSearch(props: {
useQuerySortLocalStorage={useQuerySortLocalStorage} useQuerySortLocalStorage={useQuerySortLocalStorage}
useQuerySortUrlParams={useQuerySortUrlParams} useQuerySortUrlParams={useQuerySortUrlParams}
user={user} user={user}
onSearchParametersChanged={onSearchParametersChanged.current} onSearchParametersChanged={onSearchParametersChanged}
/> />
<ContractsGrid <ContractsGrid
contracts={pages.length === 0 ? undefined : contracts} contracts={pages.length === 0 ? undefined : contracts}
@ -212,8 +213,9 @@ function ContractSearchControls(props: {
const savedSort = useQuerySortLocalStorage ? getSavedSort() : null const savedSort = useQuerySortLocalStorage ? getSavedSort() : null
const initialSort = savedSort ?? defaultSort ?? 'score' const initialSort = savedSort ?? defaultSort ?? 'score'
const [sort, setSort] = useSort(initialSort, !!useQuerySortUrlParams) const querySortOpts = { useUrl: !!useQuerySortUrlParams }
const [query, setQuery] = useQuery('', !!useQuerySortUrlParams) const [sort, setSort] = useSort(initialSort, querySortOpts)
const [query, setQuery] = useQuery('', querySortOpts)
const [filter, setFilter] = useState<filter>(defaultFilter ?? 'open') const [filter, setFilter] = useState<filter>(defaultFilter ?? 'open')
const [pillFilter, setPillFilter] = useState<string | undefined>(undefined) const [pillFilter, setPillFilter] = useState<string | undefined>(undefined)

View File

@ -12,6 +12,7 @@ export type Sort =
| 'score' | 'score'
type UpdatedQueryParams = { [k: string]: string } type UpdatedQueryParams = { [k: string]: string }
type QuerySortOpts = { useUrl: boolean }
function withURLParams(location: Location, params: UpdatedQueryParams) { function withURLParams(location: Location, params: UpdatedQueryParams) {
const newParams = new URLSearchParams(location.search) const newParams = new URLSearchParams(location.search)
@ -39,7 +40,8 @@ function getStringURLParam(router: NextRouter, k: string) {
return typeof v === 'string' ? v : null return typeof v === 'string' ? v : null
} }
export function useQuery(defaultQuery: string, useUrl: boolean) { export function useQuery(defaultQuery: string, opts?: QuerySortOpts) {
const useUrl = opts?.useUrl ?? false
const router = useRouter() const router = useRouter()
const initialQuery = useUrl ? getStringURLParam(router, 'q') : null const initialQuery = useUrl ? getStringURLParam(router, 'q') : null
const [query, setQuery] = useState(initialQuery ?? defaultQuery) const [query, setQuery] = useState(initialQuery ?? defaultQuery)
@ -50,7 +52,8 @@ export function useQuery(defaultQuery: string, useUrl: boolean) {
} }
} }
export function useSort(defaultSort: Sort, useUrl: boolean) { export function useSort(defaultSort: Sort, opts?: QuerySortOpts) {
const useUrl = opts?.useUrl ?? false
const router = useRouter() const router = useRouter()
const initialSort = useUrl ? (getStringURLParam(router, 's') as Sort) : null const initialSort = useUrl ? (getStringURLParam(router, 's') as Sort) : null
const [sort, setSort] = useState(initialSort ?? defaultSort) const [sort, setSort] = useState(initialSort ?? defaultSort)

View File

@ -17,9 +17,8 @@ export default function ContractSearchFirestore(props: {
}) { }) {
const contracts = useContracts() const contracts = useContracts()
const { additionalFilter } = props const { additionalFilter } = props
const [query, setQuery] = useQuery('', { useUrl: true })
const [query, setQuery] = useQuery('', true) const [sort, setSort] = useSort('score', { useUrl: true })
const [sort, setSort] = useSort('score', true)
let matches = (contracts ?? []).filter((c) => let matches = (contracts ?? []).filter((c) =>
searchInAny( searchInAny(