_app.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 circuit2 from '../circuit2'
  7. import circuit1 from '../circuit1'
  8. import homework from '../homework'
  9. import corona1 from '../corona1'
  10. import { createContext } from 'react'
  11. const trainings = [corona1, homework, circuit1, circuit2]
  12. export const TrainingContext = createContext(trainings)
  13. class MyApp extends App {
  14. static async getInitialProps({ Component, ctx }: any) {
  15. let pageProps: any = {}
  16. if (Component.getInitialProps) {
  17. pageProps = await Component.getInitialProps(ctx)
  18. }
  19. // Add the query object to the pageProps
  20. // https://github.com/wesbos/Advanced-React/blob/master/finished-application/frontend/pages/_app.js
  21. pageProps.query = ctx.query
  22. return { pageProps }
  23. }
  24. render() {
  25. const { Component, pageProps } = this.props
  26. return (
  27. <ApolloProvider client={client}>
  28. <TrainingContext.Provider value={trainings}>
  29. <Page>
  30. <Component {...pageProps} />
  31. </Page>
  32. </TrainingContext.Provider>
  33. </ApolloProvider>
  34. )
  35. }
  36. }
  37. export default MyApp