Upgrade React to v16

* Introduce 2 base components: Component and PureComponent. Before, we have only PureComponent but it was impossible to add a shoulComponentUpdate method (used for Terms).
This commit is contained in:
CHaBou 2017-09-16 21:17:22 +02:00
parent 507fc28200
commit f8366d010d
No known key found for this signature in database
GPG key ID: EF8D073B729A0B33
15 changed files with 103 additions and 107 deletions

View file

@ -1,13 +1,13 @@
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
import {decorate, getTabsProps} from '../utils/plugins';
import Tabs_ from './tabs';
const Tabs = decorate(Tabs_, 'Tabs');
export default class Header extends Component {
export default class Header extends PureComponent {
constructor() {
super();
this.onChangeIntent = this.onChangeIntent.bind(this);

View file

@ -1,7 +1,7 @@
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
export default class Notification extends Component {
export default class Notification extends PureComponent {
constructor() {
super();
this.state = {

View file

@ -1,13 +1,13 @@
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
import {decorate} from '../utils/plugins';
import Notification_ from './notification';
const Notification = decorate(Notification_);
export default class Notifications extends Component {
export default class Notifications extends PureComponent {
template(css) {
return (
<div className={css('view')}>

View file

@ -1,8 +1,8 @@
/* eslint-disable quote-props */
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
export default class SplitPane extends Component {
export default class SplitPane extends PureComponent {
constructor(props) {
super(props);
this.handleDragStart = this.handleDragStart.bind(this);

View file

@ -1,7 +1,7 @@
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
export default class Tab extends Component {
export default class Tab extends PureComponent {
constructor() {
super();

View file

@ -1,6 +1,6 @@
import React from 'react';
import Component from '../component';
import {PureComponent} from '../base-components';
import {decorate, getTabProps} from '../utils/plugins';
import Tab_ from './tab';
@ -8,7 +8,7 @@ import Tab_ from './tab';
const Tab = decorate(Tab_, 'Tab');
const isMac = /Mac/.test(navigator.userAgent);
export default class Tabs extends Component {
export default class Tabs extends PureComponent {
template(css) {
const {tabs = [], borderColor, onChange, onClose} = this.props;

View file

@ -1,6 +1,6 @@
import React from 'react';
import {connect} from 'react-redux';
import Component from '../component';
import {PureComponent} from '../base-components';
import {decorate, getTermProps, getTermGroupProps} from '../utils/plugins';
import {resizeTermGroup} from '../actions/term-groups';
import Term_ from './term';
@ -9,7 +9,7 @@ import SplitPane_ from './split-pane';
const Term = decorate(Term_, 'Term');
const SplitPane = decorate(SplitPane_, 'SplitPane');
class TermGroup_ extends Component {
class TermGroup_ extends PureComponent {
constructor(props, context) {
super(props, context);
this.bound = new WeakMap();

View file

@ -1,7 +1,7 @@
/* global Blob,URL,requestAnimationFrame */
import React from 'react';
import Terminal from 'xterm';
import Component from '../component';
import {PureComponent} from '../base-components';
import terms from '../terms';
import returnKey from '../utils/keymaps';
import CommandRegistry from '../command-registry';
@ -13,7 +13,7 @@ const CURSOR_STYLES = {
BLOCK: 'block'
};
export default class Term extends Component {
export default class Term extends PureComponent {
constructor(props) {
super(props);
props.ref_(props.uid, this);

View file

@ -1,5 +1,5 @@
import React from 'react';
import Component from '../component';
import {Component} from '../base-components';
import {decorate, getTermGroupProps} from '../utils/plugins';
import CommandRegistry from '../command-registry';
import TermGroup_ from './term-group';