next-material-kit
Version:
NextJS Version of Material Kit React by Creative Tim (https://creative-tim.com)
92 lines (72 loc) • 3.08 kB
JavaScript
/*!
=========================================================
* NextJS Material Kit v1.2.0 based on Material Kit Free - v2.0.2 (Bootstrap 4.0.0 Final Edition) and Material Kit React v1.8.0
=========================================================
* Product Page: https://www.creative-tim.com/product/nextjs-material-kit
* Copyright 2021 Creative Tim (https://www.creative-tim.com)
* Licensed under MIT (https://github.com/creativetimofficial/nextjs-material-kit/blob/main/LICENSE.md)
* Coded by Creative Tim
=========================================================
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*/
import React from "react";
import ReactDOM from "react-dom";
import App from "next/app";
import Head from "next/head";
import Router from "next/router";
import PageChange from "components/PageChange/PageChange.js";
import "styles/scss/nextjs-material-kit.scss?v=1.2.0";
Router.events.on("routeChangeStart", (url) => {
console.log(`Loading: ${url}`);
document.body.classList.add("body-page-transition");
ReactDOM.render(
<PageChange path={url} />,
document.getElementById("page-transition")
);
});
Router.events.on("routeChangeComplete", () => {
ReactDOM.unmountComponentAtNode(document.getElementById("page-transition"));
document.body.classList.remove("body-page-transition");
});
Router.events.on("routeChangeError", () => {
ReactDOM.unmountComponentAtNode(document.getElementById("page-transition"));
document.body.classList.remove("body-page-transition");
});
export default class MyApp extends App {
componentDidMount() {
let comment = document.createComment(`
=========================================================
* NextJS Material Kit v1.2.0 based on Material Kit Free - v2.0.2 (Bootstrap 4.0.0 Final Edition) and Material Kit React v1.8.0
=========================================================
* Product Page: https://www.creative-tim.com/product/nextjs-material-kit
* Copyright 2021 Creative Tim (https://www.creative-tim.com)
* Licensed under MIT (https://github.com/creativetimofficial/nextjs-material-kit/blob/main/LICENSE.md)
* Coded by Creative Tim
=========================================================
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
`);
document.insertBefore(comment, document.documentElement);
}
static async getInitialProps({ Component, router, ctx }) {
let pageProps = {};
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx);
}
return { pageProps };
}
render() {
const { Component, pageProps } = this.props;
return (
<React.Fragment>
<Head>
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<title>NextJS Material Kit by Creative Tim</title>
</Head>
<Component {...pageProps} />
</React.Fragment>
);
}
}