allow user to visit/bookmark empty search page

This commit is contained in:
keyan 2022-05-18 16:09:44 -05:00
parent 16957cba34
commit 9287e7b93c
3 changed files with 8 additions and 7 deletions

View File

@ -5,8 +5,8 @@ import RemoveMarkdown from 'remove-markdown'
export function SeoSearch ({ sub }) { export function SeoSearch ({ sub }) {
const router = useRouter() const router = useRouter()
const subStr = sub ? ` ~${sub}` : '' const subStr = sub ? ` ~${sub}` : ''
const title = `${router.query.q} \\ stacker news${subStr}` const title = `${router.query.q || 'search'} \\ stacker news${subStr}`
const desc = `SN${subStr} search: ${router.query.q}` const desc = `SN${subStr} search: ${router.query.q || ''}`
return ( return (
<NextSeo <NextSeo

View File

@ -112,7 +112,7 @@ export const ITEM_WITH_COMMENTS = gql`
export const ITEM_SEARCH = gql` export const ITEM_SEARCH = gql`
${ITEM_FIELDS} ${ITEM_FIELDS}
query Search($q: String!, $cursor: String) { query Search($q: String, $cursor: String) {
search(q: $q, cursor: $cursor) { search(q: $q, cursor: $cursor) {
cursor cursor
items { items {

View File

@ -5,7 +5,7 @@ import SearchItems from '../components/search-items'
import { useRouter } from 'next/router' import { useRouter } from 'next/router'
import { SeoSearch } from '../components/seo' import { SeoSearch } from '../components/seo'
export const getServerSideProps = getGetServerSideProps(ITEM_SEARCH, null, null, 'q') export const getServerSideProps = getGetServerSideProps(ITEM_SEARCH)
export default function Index ({ data: { search: { items, cursor } } }) { export default function Index ({ data: { search: { items, cursor } } }) {
const router = useRouter() const router = useRouter()
@ -13,9 +13,10 @@ export default function Index ({ data: { search: { items, cursor } } }) {
return ( return (
<Layout noSeo> <Layout noSeo>
<SeoSearch /> <SeoSearch />
<SearchItems {router.query?.q &&
items={items} cursor={cursor} variables={{ q: router.query?.q }} <SearchItems
/> items={items} cursor={cursor} variables={{ q: router.query?.q }}
/>}
</Layout> </Layout>
) )
} }