_app.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. import { UserProvider } from '../src/user/hooks'
  7. import { useCurrentUserQuery } from '../src/gql'
  8. class MyApp extends App {
  9. static async getInitialProps({ Component, ctx }: any) {
  10. let pageProps: any = {}
  11. if (Component.getInitialProps) {
  12. pageProps = await Component.getInitialProps(ctx)
  13. }
  14. // Add the query object to the pageProps
  15. // https://github.com/wesbos/Advanced-React/blob/master/finished-application/frontend/pages/_app.js
  16. pageProps.query = ctx.query
  17. return { pageProps }
  18. }
  19. render() {
  20. const { Component, pageProps } = this.props
  21. return (
  22. <ApolloProvider client={client}>
  23. <UserProvider>
  24. <Page>
  25. <Component {...pageProps} />
  26. </Page>
  27. </UserProvider>
  28. </ApolloProvider>
  29. )
  30. }
  31. }
  32. export default MyApp