_app.tsx 876 B

1234567891011121314151617181920212223242526272829303132333435
  1. import App from 'next/app'
  2. import { ApolloProvider } from '@apollo/client'
  3. import Page from '../src/app/components/Page'
  4. import client from '../src/lib/apollo'
  5. import { StoreProvider } from '../src/lib/store'
  6. class MyApp extends App {
  7. static async getInitialProps({ Component, ctx }: any) {
  8. let pageProps: any = {}
  9. if (Component.getInitialProps) {
  10. pageProps = await Component.getInitialProps(ctx)
  11. }
  12. // Add the query object to the pageProps
  13. // https://github.com/wesbos/Advanced-React/blob/master/finished-application/frontend/pages/_app.js
  14. pageProps.query = ctx.query
  15. return { pageProps }
  16. }
  17. render() {
  18. const { Component, pageProps } = this.props
  19. return (
  20. <ApolloProvider client={client}>
  21. <Page>
  22. <Component {...pageProps} />
  23. </Page>
  24. </ApolloProvider>
  25. )
  26. }
  27. }
  28. export default MyApp