Updated a lot of components to PureComponents. Better performance.

master
Håvar Aambø Fosstveit 2019-03-29 23:56:57 +01:00
parent 6a9ac30a8b
commit 2f19746fa9
21 changed files with 35 additions and 29 deletions

View File

@ -24,7 +24,6 @@
"react-draggable": "^3.2.1", "react-draggable": "^3.2.1",
"react-redux": "^6.0.1", "react-redux": "^6.0.1",
"react-scripts": "2.1.8", "react-scripts": "2.1.8",
"react-swipeable-views": "^0.13.1",
"react-tooltip": "^3.10.0", "react-tooltip": "^3.10.0",
"redux": "^4.0.1", "redux": "^4.0.1",
"redux-logger": "^3.0.6", "redux-logger": "^3.0.6",

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classnames from 'classnames'; import classnames from 'classnames';
@ -52,7 +52,7 @@ const styles = () =>
} }
}); });
class HiddenPeers extends Component class HiddenPeers extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -86,7 +86,7 @@ const styles = () =>
} }
}); });
class Me extends React.Component class Me extends React.PureComponent
{ {
state = { state = {
controlsVisible : false controlsVisible : false

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classnames from 'classnames'; import classnames from 'classnames';
@ -136,7 +136,7 @@ const styles = () =>
} }
}); });
class Peer extends Component class Peer extends React.PureComponent
{ {
state = { state = {
controlsVisible : false controlsVisible : false

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withStyles } from '@material-ui/core/styles'; import { withStyles } from '@material-ui/core/styles';
@ -37,7 +37,7 @@ const styles = (theme) =>
} }
}); });
class Sidebar extends Component class Sidebar extends React.PureComponent
{ {
render() render()
{ {

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles'; import { withStyles } from '@material-ui/core/styles';
@ -28,7 +28,7 @@ const styles = (theme) =>
} }
}); });
class ChatInput extends Component class ChatInput extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -18,7 +18,7 @@ const styles = (theme) =>
} }
}); });
class MessageList extends React.Component class MessageList extends React.PureComponent
{ {
componentDidMount() componentDidMount()
{ {
@ -31,6 +31,13 @@ class MessageList extends React.Component
+ this.node.offsetHeight === this.node.scrollHeight; + this.node.offsetHeight === this.node.scrollHeight;
} }
shouldComponentUpdate(nextProps)
{
if (nextProps.chatmessages.length !== this.props.chatmessages.length)
return true;
return false;
}
componentDidUpdate(prevProps, prevState, shouldScroll) componentDidUpdate(prevProps, prevState, shouldScroll)
{ {
if (shouldScroll) if (shouldScroll)

View File

@ -1,4 +1,4 @@
import React, { Component, Fragment } from 'react'; import React, { Fragment } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withRoomContext } from '../../../RoomContext'; import { withRoomContext } from '../../../RoomContext';
@ -49,7 +49,7 @@ const styles = (theme) =>
} }
}); });
class File extends Component class File extends React.PureComponent
{ {
render() render()
{ {

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withStyles } from '@material-ui/core/styles'; import { withStyles } from '@material-ui/core/styles';
@ -17,7 +17,7 @@ const styles = (theme) =>
} }
}); });
class FileList extends Component class FileList extends React.PureComponent
{ {
componentDidMount() componentDidMount()
{ {

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { withStyles } from '@material-ui/core/styles'; import { withStyles } from '@material-ui/core/styles';
@ -26,7 +26,7 @@ const styles = (theme) =>
} }
}); });
class FileSharing extends Component class FileSharing extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -30,7 +30,7 @@ const styles = (theme) =>
} }
}); });
class MeetingDrawer extends React.Component class MeetingDrawer extends React.PureComponent
{ {
handleChange = (event, value) => handleChange = (event, value) =>
{ {

View File

@ -45,7 +45,7 @@ const styles = (theme) =>
} }
}); });
class ParticipantList extends React.Component class ParticipantList extends React.PureComponent
{ {
componentDidMount() componentDidMount()
{ {

View File

@ -45,7 +45,7 @@ const styles = (theme) =>
} }
}); });
class Democratic extends React.Component class Democratic extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import ResizeObserver from 'resize-observer-polyfill'; import ResizeObserver from 'resize-observer-polyfill';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
@ -87,7 +87,7 @@ const styles = (theme) =>
} }
}); });
class Filmstrip extends Component class Filmstrip extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
export default class PeerAudio extends React.Component export default class PeerAudio extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -1,4 +1,4 @@
import React, { Component } from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import * as appPropTypes from './appPropTypes'; import * as appPropTypes from './appPropTypes';
@ -116,7 +116,7 @@ const styles = (theme) =>
} }
}); });
class Room extends Component class Room extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -37,7 +37,7 @@ const styles = () =>
} }
}); });
class FullView extends React.Component class FullView extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -210,7 +210,7 @@ const styles = (theme) =>
} }
}); });
class PeerView extends React.Component class PeerView extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

View File

@ -83,7 +83,7 @@ const styles = () =>
} }
}); });
class ScreenView extends React.Component class ScreenView extends React.PureComponent
{ {
constructor(props) constructor(props)
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -1,5 +1,5 @@
:root { :root {
--background: url('./images/background.svg'); --background: url('./images/background.jpg');
--background-color: rgba(114, 119, 143, 1.0); --background-color: rgba(114, 119, 143, 1.0);
--circle-button-color: rgba(255, 255, 255, 0.3); --circle-button-color: rgba(255, 255, 255, 0.3);