65 lines
1.6 KiB
JavaScript
Raw Normal View History

2021-04-22 17:14:32 -05:00
import Layout from '../../components/layout'
2021-09-30 10:46:58 -05:00
import { useQuery } from '@apollo/client'
2021-04-22 17:14:32 -05:00
import UserHeader from '../../components/user-header'
2021-06-24 18:56:01 -05:00
import CommentsFlat from '../../components/comments-flat'
2021-07-07 19:15:27 -05:00
import Seo from '../../components/seo'
2021-09-30 10:46:58 -05:00
import { USER_FULL } from '../../fragments/users'
import { useRouter } from 'next/router'
import { MORE_FLAT_COMMENTS } from '../../fragments/comments'
import { getServerSideProps as headerProps } from './index'
import getSSRApolloClient from '../../api/ssrApollo'
2021-04-22 17:14:32 -05:00
2021-09-30 10:46:58 -05:00
export async function getServerSideProps ({ req, params: { username } }) {
const { notFound, props } = await headerProps({ req, params: { username } })
2021-04-22 17:14:32 -05:00
2021-09-30 10:46:58 -05:00
if (notFound) {
2021-04-22 17:14:32 -05:00
return {
2021-09-30 10:46:58 -05:00
notFound
2021-04-22 17:14:32 -05:00
}
}
2021-09-30 10:46:58 -05:00
const { user } = props
const client = await getSSRApolloClient(req)
const { data } = await client.query({
query: MORE_FLAT_COMMENTS,
variables: { userId: user.id }
})
let comments, cursor
if (data) {
({ moreFlatComments: { comments, cursor } } = data)
}
2021-04-22 17:14:32 -05:00
return {
props: {
2021-09-30 10:46:58 -05:00
...props,
comments,
cursor
2021-04-22 17:14:32 -05:00
}
}
}
2021-09-30 10:46:58 -05:00
export default function UserComments ({ user, comments, cursor }) {
const router = useRouter()
const { data } = useQuery(
USER_FULL(user.name), {
fetchPolicy: router.query.cache ? 'cache-first' : undefined
})
if (data) {
({ user } = data)
}
2021-04-22 17:14:32 -05:00
return (
2021-07-07 19:34:23 -05:00
<Layout noSeo>
2021-07-07 19:15:27 -05:00
<Seo user={user} />
2021-04-22 17:14:32 -05:00
<UserHeader user={user} />
2021-09-30 10:46:58 -05:00
<CommentsFlat
comments={comments} cursor={cursor}
variables={{ userId: user.id }} includeParent noReply
/>
2021-04-22 17:14:32 -05:00
</Layout>
)
}