_app.js 896 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import App from 'next/app';
  2. import React from 'react';
  3. import { SnackbarProvider } from 'notistack';
  4. import loadable from '@loadable/component';
  5. import { i18n, appWithTranslation } from '../i18n';
  6. import { StoreProvider } from '../store';
  7. const GlobalStyle = loadable(() => import('../global/styled'));
  8. class MainApp extends App {
  9. static async getInitialProps({ Component, ctx }) {
  10. let pageProps = {};
  11. if (Component.getInitialProps) {
  12. pageProps = await Component.getInitialProps({ ctx });
  13. }
  14. return { pageProps };
  15. }
  16. render() {
  17. const {
  18. Component,
  19. pageProps,
  20. } = this.props;
  21. return (
  22. <StoreProvider>
  23. <SnackbarProvider maxSnack={3}>
  24. <GlobalStyle lang={i18n.language} />
  25. <Component {...pageProps} />
  26. </SnackbarProvider>
  27. </StoreProvider>
  28. );
  29. }
  30. }
  31. export default appWithTranslation(MainApp);