import React from "react" import App, { Container } from "next/app" import { MuiThemeProvider } from "@material-ui/core/styles" import CssBaseline from "@material-ui/core/CssBaseline" import JssProvider from "react-jss/lib/JssProvider" import getPageContext from "lib/getPageContext" class MyApp extends App { constructor(props) { super(props) this.pageContext = getPageContext() } pageContext = null componentDidMount() { // Remove the server-side injected CSS. const jssStyles = document.querySelector("#jss-server-side") if (jssStyles && jssStyles.parentNode) { jssStyles.parentNode.removeChild(jssStyles) } } render() { const { props } = this as any const { Component, pageProps } = props return ( {/* Wrap every page in Jss and Theme providers */} {/* MuiThemeProvider makes the theme available down the React tree thanks to React context. */} {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} {/* Pass pageContext to the _document though the renderPage enhancer to render collected styles on server side. */} ) } } export default MyApp