matrix-art

An image gallery for Matrix
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-art.git
Log | Files | Refs | README | LICENSE

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:
Mpages/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;