From c1080ec4d7cf142b3d52c54b1869c867bf6448cb Mon Sep 17 00:00:00 2001 From: keyan Date: Fri, 3 Feb 2023 13:10:18 -0600 Subject: [PATCH] fixes for top --- components/header.js | 4 ++-- components/more-footer.js | 2 +- components/top-header.js | 23 +++++++++++++++------- fragments/items.js | 2 +- fragments/users.js | 2 +- pages/top/comments/{index.js => [when].js} | 0 pages/top/posts/{index.js => [when].js} | 0 pages/top/users/{index.js => [when].js} | 0 8 files changed, 21 insertions(+), 12 deletions(-) rename pages/top/comments/{index.js => [when].js} (100%) rename pages/top/posts/{index.js => [when].js} (100%) rename pages/top/users/{index.js => [when].js} (100%) diff --git a/components/header.js b/components/header.js index 56a96be8..1d80b100 100644 --- a/components/header.js +++ b/components/header.js @@ -177,7 +177,7 @@ export default function Header ({ sub }) { {!prefix && - + top } @@ -253,7 +253,7 @@ const NavItemsStatic = ({ className }) => { - + top diff --git a/components/more-footer.js b/components/more-footer.js index 39c15921..827df571 100644 --- a/components/more-footer.js +++ b/components/more-footer.js @@ -21,7 +21,7 @@ export default function MoreFooter ({ cursor, fetchMore, Skeleton, noMoreText }) cursor } }) - setLoading(false) + setTimeout(() => setLoading(false), 100) }} >more diff --git a/components/top-header.js b/components/top-header.js index e2cffb4f..d4514dbc 100644 --- a/components/top-header.js +++ b/components/top-header.js @@ -1,17 +1,26 @@ import { useRouter } from 'next/router' import { Form, Select } from './form' +const USER_SORTS = ['stacked', 'spent', 'comments', 'posts', 'referrals'] +const ITEM_SORTS = ['votes', 'comments', 'sats'] + export default function TopHeader ({ cat }) { const router = useRouter() const top = async values => { - const what = values.what - delete values.what - if (values.sort === '') delete values.sort - if (values.when === '') delete values.when + const { what, when, ...query } = values + + if (typeof query.sort !== 'undefined') { + if (query.sort === '' || + (what === 'users' && !USER_SORTS.includes(query.sort)) || + (what !== 'users' && !ITEM_SORTS.includes(query.sort))) { + delete query.sort + } + } + await router.push({ - pathname: `/top/${what}`, - query: values + pathname: `/top/${what}/${when}`, + query }) } @@ -41,7 +50,7 @@ export default function TopHeader ({ cat }) { onChange={(formik, e) => top({ ...formik?.values, sort: e.target.value })} name='sort' size='sm' - items={cat === 'users' ? ['stacked', 'spent', 'comments', 'posts', 'referrals'] : ['votes', 'comments', 'sats']} + items={cat === 'users' ? USER_SORTS : ITEM_SORTS} /> for