diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-10-05 16:15:57 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-10-08 13:00:17 +0200 |
| commit | d7d6f62aa251725d3fc343dbcea049a793347053 (patch) | |
| tree | f300838090fcd1721a02a12351746b06258cbac4 | |
| parent | 3670e279f4f7cdde04b358d7835801a2638d1d29 (diff) | |
| download | mullvadvpn-d7d6f62aa251725d3fc343dbcea049a793347053.tar.xz mullvadvpn-d7d6f62aa251725d3fc343dbcea049a793347053.zip | |
Optimize scrollbars to render only on props/state changes
| -rw-r--r-- | gui/packages/desktop/src/renderer/components/CustomScrollbars.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gui/packages/desktop/src/renderer/components/CustomScrollbars.js b/gui/packages/desktop/src/renderer/components/CustomScrollbars.js index 00cad9bc5c..c6e5c09afe 100644 --- a/gui/packages/desktop/src/renderer/components/CustomScrollbars.js +++ b/gui/packages/desktop/src/renderer/components/CustomScrollbars.js @@ -92,6 +92,24 @@ export default class CustomScrollbars extends React.Component<Props, State> { } } + shouldComponentUpdate(nextProps: Props, nextState: State) { + const prevProps = this.props; + const prevState = this.state; + + return ( + prevProps.children !== nextProps.children || + prevProps.autoHide !== nextProps.autoHide || + prevProps.trackPadding.x !== nextProps.trackPadding.x || + prevProps.trackPadding.y !== nextProps.trackPadding.y || + prevState.canScroll !== nextState.canScroll || + prevState.showScrollIndicators !== nextState.showScrollIndicators || + prevState.showTrack !== nextState.showTrack || + prevState.isTrackHovered !== nextState.isTrackHovered || + prevState.isDragging !== nextState.isDragging || + prevState.isWide !== nextState.isWide + ); + } + componentWillUnmount() { this._stopAutoHide(); |
