commit 3c9d963ae5d623d7c89312cb43c3aba6f8add04e
parent 4e058a848d4701600a77044eb31660ff84634cd5
Author: MTRNord <mtrnord1@gmail.com>
Date: Wed, 5 Jan 2022 20:45:03 +0100
Ensure to not do unneeded rerenders
Diffstat:
| M | pages/index.tsx | | | 61 | ++++++++++++++++++++++++++++++++++++++----------------------- |
1 file changed, 38 insertions(+), 23 deletions(-)
diff --git a/pages/index.tsx b/pages/index.tsx
@@ -1,30 +1,45 @@
-import type { NextPage } from 'next';
import Head from 'next/head';
-import React from 'react';
+import React, { PureComponent } from 'react';
import { guest_client, client, ClientContext } from '../components/ClientContext';
+import MatrixClient from '../helpers/matrix_client';
import Home from './Home';
-const App: NextPage = () => {
- return (
- <>
- <Head>
- <title key="title">Matrix Art</title>
- <meta property="og:title" content="Matrix Art" key="og-title" />
- <meta property="og:type" content="website" key="og-type" />
- <meta key="viewport" name="viewport" content="initial-scale=1.0, width=device-width" />
- </Head>
- <React.StrictMode>
- <ClientContext.Provider
- value={{
- client: client,
- guest_client: guest_client,
- }}
- >
- <Home />
- </ClientContext.Provider>
- </React.StrictMode>
- </>
- );
+type Props = {
+
+};
+
+type State = {
+ value: { client: MatrixClient; guest_client: MatrixClient; };
};
+class App extends PureComponent<Props, State> {
+ constructor(props: Props | Readonly<Props>) {
+ super(props);
+ this.state = {
+ value: {
+ client: client,
+ guest_client: guest_client,
+ },
+ };
+ }
+ render() {
+ return (
+ <>
+ <Head>
+ <title key="title">Matrix Art</title>
+ <meta property="og:title" content="Matrix Art" key="og-title" />
+ <meta property="og:type" content="website" key="og-type" />
+ <meta key="viewport" name="viewport" content="initial-scale=1.0, width=device-width" />
+ </Head>
+ <React.StrictMode>
+ <ClientContext.Provider
+ value={this.state.value}
+ >
+ <Home />
+ </ClientContext.Provider>
+ </React.StrictMode>
+ </>
+ );
+ }
+}
export default App;