064917682f
* fix(with-react-relay-network-modern): fix README.md typo error * fix(with-react-relay-network-modern): should not use store cache for create environment * fix(with-react-relay-network-modern): should not request api again * feat(with-react-relay-network-modern): add relay-hooks package * feat(with-react-relay-network-modern): use new RelayEnvironmentProvider * feat(with-react-relay-network-modern): add useQuery hook * fix(with-react-relay-network-modern): fix cache error * fix(with-react-relay-network-modern): fix server loading Co-authored-by: Luis Alvarez <luis@vercel.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
39 lines
841 B
JavaScript
39 lines
841 B
JavaScript
import { graphql, fetchQuery } from 'react-relay'
|
|
import { useQuery } from 'relay-hooks'
|
|
|
|
import { initEnvironment } from '../lib/createEnvironment'
|
|
import BlogPosts from '../components/BlogPosts'
|
|
|
|
const query = graphql`
|
|
query pages_indexQuery {
|
|
viewer {
|
|
...BlogPosts_viewer
|
|
}
|
|
}
|
|
`
|
|
|
|
const Index = ({ environment }) => {
|
|
const { error, props } = useQuery(query)
|
|
|
|
if (error) return <div>{error.message}</div>
|
|
|
|
if (!props) return <div>Loading</div>
|
|
|
|
return <BlogPosts viewer={props.viewer} />
|
|
}
|
|
|
|
export async function getStaticProps() {
|
|
const { environment, relaySSR } = initEnvironment()
|
|
|
|
await fetchQuery(environment, query)
|
|
|
|
const relayData = (await relaySSR.getCache())?.[0]
|
|
|
|
return {
|
|
props: {
|
|
relayData: !relayData ? null : [[relayData[0], relayData[1].json]],
|
|
},
|
|
}
|
|
}
|
|
|
|
export default Index
|