-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path_app.js
71 lines (62 loc) · 1.81 KB
/
_app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import React from "react";
import App from "next/app";
import Head from "next/head";
import { ThemeProvider } from "@material-ui/core/styles";
import Theme from "../src/ui/Theme";
import Header from "../src/ui/Header";
import Footer from "../src/ui/Footer";
import Fonts from "../src/ui/Fonts";
import { LazyLoadComponent } from "react-lazy-load-image-component";
export default class MyApp extends App {
constructor(props) {
super(props);
this.state = { value: 0, selectedIndex: 0 };
}
setValue = (index) => {
this.setState({ value: index });
};
setSelectedIndex = (index) => {
this.setState({ selectedIndex: index });
};
componentDidMount() {
Fonts();
// Remove the server-side injected CSS.
const jssStyles = document.querySelector("#jss-server-side");
if (jssStyles) {
jssStyles.parentElement.removeChild(jssStyles);
}
}
render() {
const { Component, pageProps } = this.props;
return (
<React.Fragment>
<Head>
<title>My page</title>
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width"
/>
</Head>
<ThemeProvider theme={Theme}>
<Header
value={this.state.value}
setValue={this.setValue}
selectedIndex={this.state.selectedIndex}
setSelectedIndex={this.setSelectedIndex}
/>
<Component
{...pageProps}
setSelectedIndex={this.setSelectedIndex}
setValue={this.setValue}
/>
<LazyLoadComponent threshold={400}>
<Footer
setSelectedIndex={this.setSelectedIndex}
setValue={this.setValue}
/>
</LazyLoadComponent>
</ThemeProvider>
</React.Fragment>
);
}
}