Use React.PureComponent instead of pure-render-decorator

This commit is contained in:
Ken-Håvard Lieng 2017-02-17 01:46:39 +01:00
parent 531792b14a
commit e6892ccd2d
19 changed files with 57 additions and 139 deletions

View file

@ -1,11 +1,9 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { List } from 'immutable';
import pure from 'pure-render-decorator';
import Navicon from '../components/Navicon';
import { linkify } from '../util';
@pure
export default class ChatTitle extends Component {
export default class ChatTitle extends PureComponent {
handleLeaveClick = () => {
const { tab, disconnect, part, closePrivateChat } = this.props;

View file

@ -1,8 +1,6 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
@pure
export default class FileInput extends Component {
export default class FileInput extends PureComponent {
componentWillMount() {
this.input = window.document.createElement('input');
this.input.setAttribute('type', 'file');

View file

@ -1,9 +1,7 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
import { timestamp, linkify } from '../util';
@pure
export default class Message extends Component {
export default class Message extends PureComponent {
handleSenderClick = () => {
const { message, openPrivateChat, select } = this.props;

View file

@ -1,10 +1,8 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { VirtualScroll } from 'react-virtualized';
import pure from 'pure-render-decorator';
import Message from './Message';
@pure
export default class MessageBox extends Component {
export default class MessageBox extends PureComponent {
state = {
height: window.innerHeight - 100
};

View file

@ -1,8 +1,6 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
@pure
export default class MessageInput extends Component {
export default class MessageInput extends PureComponent {
state = {
value: ''
};

View file

@ -1,10 +1,8 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import pure from 'pure-render-decorator';
import { toggleMenu } from '../actions/ui';
@pure
class Navicon extends Component {
class Navicon extends PureComponent {
handleClick = () => this.props.dispatch(toggleMenu());
render() {

View file

@ -1,9 +1,7 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
import SearchResult from './SearchResult';
@pure
export default class Search extends Component {
export default class Search extends PureComponent {
componentDidUpdate(prevProps) {
if (!prevProps.search.show && this.props.search.show) {
this.input.focus();

View file

@ -1,10 +1,8 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import Autolinker from 'autolinker';
import pure from 'pure-render-decorator';
import { timestamp } from '../util';
@pure
export default class Search extends Component {
export default class Search extends PureComponent {
render() {
const { result } = this.props;
const content = Autolinker.link(result.content, { stripPrefix: false });

View file

@ -1,9 +1,7 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
import TabListItem from './TabListItem';
@pure
export default class TabList extends Component {
export default class TabList extends PureComponent {
handleTabClick = (server, target) => {
this.props.select(server, target, target && target.charAt(0) !== '#');
this.props.hideMenu();

View file

@ -1,8 +1,6 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
@pure
export default class TabListItem extends Component {
export default class TabListItem extends PureComponent {
handleClick = () => {
const { server, target, onClick } = this.props;
onClick(server, target);

View file

@ -1,10 +1,8 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { VirtualScroll } from 'react-virtualized';
import pure from 'pure-render-decorator';
import UserListItem from './UserListItem';
@pure
export default class UserList extends Component {
export default class UserList extends PureComponent {
state = {
height: window.innerHeight - 100
};

View file

@ -1,8 +1,6 @@
import React, { Component } from 'react';
import pure from 'pure-render-decorator';
import React, { PureComponent } from 'react';
@pure
export default class UserListItem extends Component {
export default class UserListItem extends PureComponent {
handleClick = () => {
const { tab, user, openPrivateChat, select } = this.props;

View file

@ -1,13 +1,11 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import { push } from 'react-router-redux';
import pure from 'pure-render-decorator';
import TabList from '../components/TabList';
import { select } from '../actions/tab';
import { hideMenu } from '../actions/ui';
@pure
class App extends Component {
class App extends PureComponent {
render() {
const { showTabList, children } = this.props;
const mainClass = showTabList ? 'main-container off-canvas' : 'main-container';

View file

@ -1,9 +1,8 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { createSelector, createStructuredSelector } from 'reselect';
import { List, Map } from 'immutable';
import pure from 'pure-render-decorator';
import ChatTitle from '../components/ChatTitle';
import Search from '../components/Search';
import MessageBox from '../components/MessageBox';
@ -36,8 +35,7 @@ function updateCharWidth() {
return setCharWidth(charWidth);
}
@pure
class Chat extends Component {
class Chat extends PureComponent {
componentWillMount() {
const { dispatch } = this.props;
dispatch(updateCharWidth());

View file

@ -1,13 +1,11 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import pure from 'pure-render-decorator';
import Navicon from '../components/Navicon';
import * as serverActions from '../actions/server';
import { join } from '../actions/channel';
import { select } from '../actions/tab';
@pure
class Connect extends Component {
class Connect extends PureComponent {
state = {
showOptionals: false,
passwordTouched: false

View file

@ -1,12 +1,10 @@
import React, { Component } from 'react';
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import pure from 'pure-render-decorator';
import Navicon from '../components/Navicon';
import FileInput from '../components/FileInput';
import { setCert, setKey, uploadCert } from '../actions/settings';
@pure
class Settings extends Component {
class Settings extends PureComponent {
handleCertChange = (name, data) => this.props.dispatch(setCert(name, data));
handleKeyChange = (name, data) => this.props.dispatch(setKey(name, data));
handleCertUpload = () => this.props.dispatch(uploadCert());