From 91f9bb23f31fa7d756c9ad9e2e58e02d348bb087 Mon Sep 17 00:00:00 2001 From: jahooma Date: Sat, 1 Jan 2022 14:10:48 -0600 Subject: [PATCH] Sort query in progress --- web/components/contracts-list.tsx | 24 ++++++++++++++++++------ web/pages/markets.tsx | 27 ++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/web/components/contracts-list.tsx b/web/components/contracts-list.tsx index 07c052b0..abe91a3c 100644 --- a/web/components/contracts-list.tsx +++ b/web/components/contracts-list.tsx @@ -223,14 +223,19 @@ const MAX_CONTRACTS_DISPLAYED = 99 type Sort = 'creator' | 'tag' | 'createdTime' | 'pool' | 'resolved' | 'all' export function SearchableGrid(props: { contracts: Contract[] - defaultSort?: Sort + sort?: Sort + setSort: (sort: Sort) => void byOneCreator?: boolean }) { - const { contracts, defaultSort, byOneCreator } = props + const { contracts, sort, setSort, byOneCreator } = props const [query, setQuery] = useState('') - const [sort, setSort] = useState( - defaultSort || (byOneCreator ? 'pool' : 'creator') - ) + // const [sort, setSort] = useState( + // defaultSort || (byOneCreator ? 'pool' : 'creator') + // ) + + // useEffect(() => { + // if (defaultSort) setSort(defaultSort) + // }, [defaultSort]) function check(corpus: String) { return corpus.toLowerCase().includes(query.toLowerCase()) @@ -311,5 +316,12 @@ export function CreatorContractsList(props: { creator: User }) { if (contracts === 'loading') return <> - return + return ( + {}} + /> + ) } diff --git a/web/pages/markets.tsx b/web/pages/markets.tsx index f14a1906..025e22b8 100644 --- a/web/pages/markets.tsx +++ b/web/pages/markets.tsx @@ -1,3 +1,4 @@ +import { useRouter } from 'next/router' import { SearchableGrid } from '../components/contracts-list' import { Page } from '../components/page' import { useContracts } from '../hooks/use-contracts' @@ -18,11 +19,35 @@ export async function getStaticProps() { export default function Markets(props: { contracts: Contract[] }) { const contracts = useContracts() + const router = useRouter() + const { tag, creator, newest, mostTraded } = router.query as { + tag?: string + creator?: string + newest?: string + mostTraded?: string + } + const sort = + tag === '' + ? 'tag' + : creator === '' + ? 'creator' + : newest === '' + ? 'createdTime' + : mostTraded === '' + ? 'pool' + : undefined + + const setSort = () => { + router.push(router.pathname, '?tag') + } + return ( - {(props.contracts || contracts !== 'loading') && ( + {(props.contracts || contracts !== 'loading') && router.isReady && ( )}