",
"version": "2.0.0",
- "visible": true
+ "visible": true,
+ "semantic-icon": "archive"
},
{
"id": "wallet",
diff --git a/js/src/shared/redux/providers/status.js b/js/src/shared/redux/providers/status.js
index 2f363e8fc..784921404 100644
--- a/js/src/shared/redux/providers/status.js
+++ b/js/src/shared/redux/providers/status.js
@@ -255,7 +255,17 @@ export default class Status {
// Support Parity-Extension.
const uiUrl = this._api.transport.uiUrlWithProtocol || '';
- return fetch(`${uiUrl}/api/health`).then(res => res.json());
+ return fetch(`${uiUrl}/api/health`)
+ .then((response) => {
+ if (!response.ok) {
+ return {};
+ }
+
+ return response.json();
+ })
+ .catch(() => {
+ return {};
+ });
}
/**
diff --git a/js/src/shared/util/proptypes.js b/js/src/shared/util/proptypes.js
index 30b6fafd9..9192f87bd 100644
--- a/js/src/shared/util/proptypes.js
+++ b/js/src/shared/util/proptypes.js
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import { PropTypes } from 'react';
+import PropTypes from 'prop-types';
export function arrayOrObjectProptype () {
return PropTypes.oneOfType([
diff --git a/js/src/shell/Application/application.js b/js/src/shell/Application/application.js
index ccf8d76cf..aff8e5eb7 100644
--- a/js/src/shell/Application/application.js
+++ b/js/src/shell/Application/application.js
@@ -15,9 +15,10 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
import { Errors } from '@parity/ui';
diff --git a/js/src/shell/Connection/connection.js b/js/src/shell/Connection/connection.js
index d7a20a814..ebb80be9d 100644
--- a/js/src/shell/Connection/connection.js
+++ b/js/src/shell/Connection/connection.js
@@ -14,9 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
import { Input } from '@parity/ui';
import { CompareIcon, ComputerIcon, DashboardIcon, VpnIcon } from '@parity/ui/Icons';
diff --git a/js/src/shell/Dapp/dapp.js b/js/src/shell/Dapp/dapp.js
index e73d0463d..02dcc5be0 100644
--- a/js/src/shell/Dapp/dapp.js
+++ b/js/src/shell/Dapp/dapp.js
@@ -14,9 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
import { observer } from 'mobx-react';
import { FormattedMessage } from 'react-intl';
+import PropTypes from 'prop-types';
import DappsStore from '../Dapps/dappsStore';
diff --git a/js/src/shell/DappRequests/Request/request.js b/js/src/shell/DappRequests/Request/request.js
index 5d02b03bf..43a932903 100644
--- a/js/src/shell/DappRequests/Request/request.js
+++ b/js/src/shell/DappRequests/Request/request.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button } from '@parity/ui';
diff --git a/js/src/shell/Dapps/dapps.js b/js/src/shell/Dapps/dapps.js
index 6cb246385..23097615e 100644
--- a/js/src/shell/Dapps/dapps.js
+++ b/js/src/shell/Dapps/dapps.js
@@ -16,9 +16,10 @@
import { omitBy } from 'lodash';
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
import { Checkbox, DappCard, Page, SectionList } from '@parity/ui';
@@ -81,10 +82,10 @@ class Dapps extends Component {
/>
}
>
- { this.renderList(this.store.visibleViews) }
- { this.renderList(this.store.visibleLocal) }
- { this.renderList(this.store.visibleBuiltin) }
- { this.renderList(this.store.visibleNetwork, externalOverlay) }
+ { this.renderList(this.store.visibleViews) }
+ { this.renderList(this.store.visibleLocal) }
+ { this.renderList(this.store.visibleBuiltin) }
+ { this.renderList(this.store.visibleNetwork, externalOverlay) }
);
}
@@ -93,6 +94,7 @@ class Dapps extends Component {
return (
diff --git a/js/src/shell/FirstRun/TnC/tnc.js b/js/src/shell/FirstRun/TnC/tnc.js
index af464adb4..719ff471c 100644
--- a/js/src/shell/FirstRun/TnC/tnc.js
+++ b/js/src/shell/FirstRun/TnC/tnc.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import ReactMarkdown from 'react-markdown';
diff --git a/js/src/shell/FirstRun/firstRun.js b/js/src/shell/FirstRun/firstRun.js
index d7bd54491..f830b09b2 100644
--- a/js/src/shell/FirstRun/firstRun.js
+++ b/js/src/shell/FirstRun/firstRun.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/shell/ParityBar/parityBar.js b/js/src/shell/ParityBar/parityBar.js
index 9a058a552..960f0fbe0 100644
--- a/js/src/shell/ParityBar/parityBar.js
+++ b/js/src/shell/ParityBar/parityBar.js
@@ -16,7 +16,8 @@
import { throttle } from 'lodash';
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router';
diff --git a/js/src/shell/Requests/requests.js b/js/src/shell/Requests/requests.js
index 026fd3f9b..d35cd815b 100644
--- a/js/src/shell/Requests/requests.js
+++ b/js/src/shell/Requests/requests.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import ReactDOM from 'react-dom';
import { connect } from 'react-redux';
diff --git a/js/src/shell/Signer/Embedded/embedded.js b/js/src/shell/Signer/Embedded/embedded.js
index 13e2283a9..e4f72e771 100644
--- a/js/src/shell/Signer/Embedded/embedded.js
+++ b/js/src/shell/Signer/Embedded/embedded.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/shell/Signer/components/Account/AccountLink/accountLink.js b/js/src/shell/Signer/components/Account/AccountLink/accountLink.js
index afa8e98e5..912e446d7 100644
--- a/js/src/shell/Signer/components/Account/AccountLink/accountLink.js
+++ b/js/src/shell/Signer/components/Account/AccountLink/accountLink.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { Link } from 'react-router';
diff --git a/js/src/shell/Signer/components/Account/account.js b/js/src/shell/Signer/components/Account/account.js
index 003fdeec3..a176eef7e 100644
--- a/js/src/shell/Signer/components/Account/account.js
+++ b/js/src/shell/Signer/components/Account/account.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { IdentityIcon, IdentityName } from '@parity/ui';
diff --git a/js/src/shell/Signer/components/DecryptRequest/decryptRequest.js b/js/src/shell/Signer/components/DecryptRequest/decryptRequest.js
index 703582c9e..018c581ff 100644
--- a/js/src/shell/Signer/components/DecryptRequest/decryptRequest.js
+++ b/js/src/shell/Signer/components/DecryptRequest/decryptRequest.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/shell/Signer/components/RequestOrigin/requestOrigin.js b/js/src/shell/Signer/components/RequestOrigin/requestOrigin.js
index 569e19528..e0136e486 100644
--- a/js/src/shell/Signer/components/RequestOrigin/requestOrigin.js
+++ b/js/src/shell/Signer/components/RequestOrigin/requestOrigin.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import IdentityIcon from '@parity/ui/IdentityIcon';
diff --git a/js/src/shell/Signer/components/RequestPending/requestPending.js b/js/src/shell/Signer/components/RequestPending/requestPending.js
index 7865a1d77..e116e6906 100644
--- a/js/src/shell/Signer/components/RequestPending/requestPending.js
+++ b/js/src/shell/Signer/components/RequestPending/requestPending.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import DecryptRequest from '../DecryptRequest';
import SignRequest from '../SignRequest';
diff --git a/js/src/shell/Signer/components/SignRequest/signRequest.js b/js/src/shell/Signer/components/SignRequest/signRequest.js
index 212716035..b1428008d 100644
--- a/js/src/shell/Signer/components/SignRequest/signRequest.js
+++ b/js/src/shell/Signer/components/SignRequest/signRequest.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/shell/Signer/components/TransactionMainDetails/transactionMainDetails.js b/js/src/shell/Signer/components/TransactionMainDetails/transactionMainDetails.js
index d06a0218f..a6f96d972 100644
--- a/js/src/shell/Signer/components/TransactionMainDetails/transactionMainDetails.js
+++ b/js/src/shell/Signer/components/TransactionMainDetails/transactionMainDetails.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import ReactTooltip from 'react-tooltip';
diff --git a/js/src/shell/Signer/components/TransactionPending/transactionPending.js b/js/src/shell/Signer/components/TransactionPending/transactionPending.js
index 1cdae2a4b..2cb6314a0 100644
--- a/js/src/shell/Signer/components/TransactionPending/transactionPending.js
+++ b/js/src/shell/Signer/components/TransactionPending/transactionPending.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/shell/Signer/components/TransactionPendingForm/transactionPendingForm.js b/js/src/shell/Signer/components/TransactionPendingForm/transactionPendingForm.js
index 106c38fb5..281d8e617 100644
--- a/js/src/shell/Signer/components/TransactionPendingForm/transactionPendingForm.js
+++ b/js/src/shell/Signer/components/TransactionPendingForm/transactionPendingForm.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { PrevIcon } from '@parity/ui/Icons';
diff --git a/js/src/shell/Signer/components/TransactionPendingFormConfirm/transactionPendingFormConfirm.js b/js/src/shell/Signer/components/TransactionPendingFormConfirm/transactionPendingFormConfirm.js
index fb7531a86..723ea3bdb 100644
--- a/js/src/shell/Signer/components/TransactionPendingFormConfirm/transactionPendingFormConfirm.js
+++ b/js/src/shell/Signer/components/TransactionPendingFormConfirm/transactionPendingFormConfirm.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import keycode from 'keycode';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import { FormattedMessage } from 'react-intl';
import ReactTooltip from 'react-tooltip';
diff --git a/js/src/shell/Signer/components/TransactionPendingFormReject/transactionPendingFormReject.js b/js/src/shell/Signer/components/TransactionPendingFormReject/transactionPendingFormReject.js
index 171ee5dc4..d3606cc43 100644
--- a/js/src/shell/Signer/components/TransactionPendingFormReject/transactionPendingFormReject.js
+++ b/js/src/shell/Signer/components/TransactionPendingFormReject/transactionPendingFormReject.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button } from '@parity/ui';
diff --git a/js/src/shell/Signer/components/TxHashLink/txHashLink.js b/js/src/shell/Signer/components/TxHashLink/txHashLink.js
index 42cc336e7..4a1a90e11 100644
--- a/js/src/shell/Signer/components/TxHashLink/txHashLink.js
+++ b/js/src/shell/Signer/components/TxHashLink/txHashLink.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { txLink } from '~/3rdparty/etherscan/links';
diff --git a/js/src/shell/Snackbar/snackbar.js b/js/src/shell/Snackbar/snackbar.js
index 4c232dfa4..24e2d40a7 100644
--- a/js/src/shell/Snackbar/snackbar.js
+++ b/js/src/shell/Snackbar/snackbar.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/shell/Status/Consensus/consensus.js b/js/src/shell/Status/Consensus/consensus.js
index 000927125..0c5f38527 100644
--- a/js/src/shell/Status/Consensus/consensus.js
+++ b/js/src/shell/Status/Consensus/consensus.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
export default function Consensus ({ upgradeStore }) {
diff --git a/js/src/shell/Status/Upgrade/upgrade.js b/js/src/shell/Status/Upgrade/upgrade.js
index c4b89b0ee..c17e5aea0 100644
--- a/js/src/shell/Status/Upgrade/upgrade.js
+++ b/js/src/shell/Status/Upgrade/upgrade.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
export default function Upgrade ({ upgradeStore }) {
diff --git a/js/src/shell/Status/status.js b/js/src/shell/Status/status.js
index 2f3584002..5d84dfb58 100644
--- a/js/src/shell/Status/status.js
+++ b/js/src/shell/Status/status.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { BlockStatus } from '@parity/ui';
diff --git a/js/src/shell/SyncWarning/syncWarning.js b/js/src/shell/SyncWarning/syncWarning.js
index 612e5da8b..838ffa7c3 100644
--- a/js/src/shell/SyncWarning/syncWarning.js
+++ b/js/src/shell/SyncWarning/syncWarning.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import store from 'store';
diff --git a/js/src/shell/UpgradeParity/upgradeParity.js b/js/src/shell/UpgradeParity/upgradeParity.js
index 499209660..bde0bbcda 100644
--- a/js/src/shell/UpgradeParity/upgradeParity.js
+++ b/js/src/shell/UpgradeParity/upgradeParity.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button, Portal } from '@parity/ui';
diff --git a/js/src/shell/index.js b/js/src/shell/index.js
index aa8ad95a1..fca92633c 100644
--- a/js/src/shell/index.js
+++ b/js/src/shell/index.js
@@ -46,6 +46,8 @@ import Dapps from './Dapps';
injectTapEventPlugin();
+console.log('UI version', process.env.UI_VERSION);
+
if (process.env.NODE_ENV === 'development') {
// Expose the React Performance Tools on the`window` object
const Perf = require('react-addons-perf');
diff --git a/js/src/ui/AccountCard/accountCard.js b/js/src/ui/AccountCard/accountCard.js
index 2040d3441..395e68a5d 100644
--- a/js/src/ui/AccountCard/accountCard.js
+++ b/js/src/ui/AccountCard/accountCard.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import keycode from 'keycode';
diff --git a/js/src/ui/Actionbar/Export/export.js b/js/src/ui/Actionbar/Export/export.js
index 068d1476c..ffab53036 100644
--- a/js/src/ui/Actionbar/Export/export.js
+++ b/js/src/ui/Actionbar/Export/export.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import FileSaver from 'file-saver';
diff --git a/js/src/ui/Actionbar/Import/import.js b/js/src/ui/Actionbar/Import/import.js
index 0598b01a2..894689dc9 100644
--- a/js/src/ui/Actionbar/Import/import.js
+++ b/js/src/ui/Actionbar/Import/import.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Actionbar/Search/search.js b/js/src/ui/Actionbar/Search/search.js
index 72bf50fd5..51a2f79d2 100644
--- a/js/src/ui/Actionbar/Search/search.js
+++ b/js/src/ui/Actionbar/Search/search.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import Button from '~/ui/Button';
diff --git a/js/src/ui/Actionbar/Sort/sort.js b/js/src/ui/Actionbar/Sort/sort.js
index 7e3edc222..c6c97e7f9 100644
--- a/js/src/ui/Actionbar/Sort/sort.js
+++ b/js/src/ui/Actionbar/Sort/sort.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { observer } from 'mobx-react';
diff --git a/js/src/ui/Actionbar/actionbar.css b/js/src/ui/Actionbar/actionbar.css
index 4bb36abcf..3f023a1bd 100644
--- a/js/src/ui/Actionbar/actionbar.css
+++ b/js/src/ui/Actionbar/actionbar.css
@@ -21,7 +21,7 @@
flex-direction: row;
align-items: center;
justify-content: space-between;
- padding: 0.5em 1.5em;
+ padding: 1.5em;
margin: 0;
.title {
diff --git a/js/src/ui/Actionbar/actionbar.js b/js/src/ui/Actionbar/actionbar.js
index 41cf9d967..0f20f97eb 100644
--- a/js/src/ui/Actionbar/actionbar.js
+++ b/js/src/ui/Actionbar/actionbar.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Badge/badge.js b/js/src/ui/Badge/badge.js
index 4e0777228..7115d3041 100644
--- a/js/src/ui/Badge/badge.js
+++ b/js/src/ui/Badge/badge.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './badge.css';
diff --git a/js/src/ui/Balance/balance.css b/js/src/ui/Balance/balance.css
index 43387a53a..dc3e1af34 100644
--- a/js/src/ui/Balance/balance.css
+++ b/js/src/ui/Balance/balance.css
@@ -15,7 +15,7 @@
/* along with Parity. If not, see .
*/
-$tagColor: rgba(100, 100, 100, 0.25);
+$tagColor: rgba(0, 0, 0, 0.25);
$textColor: white;
.balances {
diff --git a/js/src/ui/Balance/balance.js b/js/src/ui/Balance/balance.js
index 29c0cb7f5..abf78d412 100644
--- a/js/src/ui/Balance/balance.js
+++ b/js/src/ui/Balance/balance.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/ui/BlockStatus/blockStatus.js b/js/src/ui/BlockStatus/blockStatus.js
index 15e70f247..9df0c6961 100644
--- a/js/src/ui/BlockStatus/blockStatus.js
+++ b/js/src/ui/BlockStatus/blockStatus.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/ui/Button/button.js b/js/src/ui/Button/button.js
index 0e0219a50..37499aa33 100644
--- a/js/src/ui/Button/button.js
+++ b/js/src/ui/Button/button.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Button as SemanticButton } from 'semantic-ui-react';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Certifications/certifications.js b/js/src/ui/Certifications/certifications.js
index f8fa88884..f1e9f9a76 100644
--- a/js/src/ui/Certifications/certifications.js
+++ b/js/src/ui/Certifications/certifications.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import defaultIcon from '@parity/shared/assets/images/certifications/unknown.svg';
diff --git a/js/src/ui/ConfirmDialog/confirmDialog.js b/js/src/ui/ConfirmDialog/confirmDialog.js
index b58c30971..8009db3f2 100644
--- a/js/src/ui/ConfirmDialog/confirmDialog.js
+++ b/js/src/ui/ConfirmDialog/confirmDialog.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Container/Title/Actions/actions.js b/js/src/ui/Container/Title/Actions/actions.js
index 0da706afa..c9deaccd2 100644
--- a/js/src/ui/Container/Title/Actions/actions.js
+++ b/js/src/ui/Container/Title/Actions/actions.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from '../title.css';
diff --git a/js/src/ui/Container/Title/title.js b/js/src/ui/Container/Title/title.js
index bff3aa84c..db6ee951a 100644
--- a/js/src/ui/Container/Title/title.js
+++ b/js/src/ui/Container/Title/title.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Container/container.css b/js/src/ui/Container/container.css
index 136bd0b74..e0a12b9f2 100644
--- a/js/src/ui/Container/container.css
+++ b/js/src/ui/Container/container.css
@@ -16,9 +16,10 @@
*/
$background: rgba(254, 254, 254, 1);
-$backgroundHover: rgba(250, 250, 250, 1);
+$backgroundHover: rgba(252, 252, 252, 1);
$backgroundLight: rgba(18, 18, 18, 0.5);
$borderColor: rgba(242, 242, 242, 1);
+$shadow: 0.25em 0.25em 0.25em rgba(0, 0, 0, 0.125);
.container {
background: $background;
@@ -42,16 +43,18 @@ $borderColor: rgba(242, 242, 242, 1);
top: 100%;
opacity: 0;
z-index: 100;
+
}
&:hover {
background: $backgroundHover;
+ box-shadow: $shadow;
.hoverOverlay {
background: $backgroundHover !important;
border: 1px solid $borderColor;
border-top: 1px solid transparent;
- box-shadow: none !important;
+ box-shadow: $shadow;
display: block;
opacity: 1;
}
diff --git a/js/src/ui/Container/container.js b/js/src/ui/Container/container.js
index df705df0f..221aac7f5 100644
--- a/js/src/ui/Container/container.js
+++ b/js/src/ui/Container/container.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Link } from 'react-router';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/ContextProvider/contextProvider.js b/js/src/ui/ContextProvider/contextProvider.js
index 7bd3b57d0..c1cbf9c31 100644
--- a/js/src/ui/ContextProvider/contextProvider.js
+++ b/js/src/ui/ContextProvider/contextProvider.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { IntlProvider } from 'react-intl';
import { observer } from 'mobx-react';
diff --git a/js/src/ui/CopyToClipboard/copyToClipboard.js b/js/src/ui/CopyToClipboard/copyToClipboard.js
index 63eafffd7..a75ba79cc 100644
--- a/js/src/ui/CopyToClipboard/copyToClipboard.js
+++ b/js/src/ui/CopyToClipboard/copyToClipboard.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import Clipboard from 'react-copy-to-clipboard';
import { connect } from 'react-redux';
diff --git a/js/src/ui/CurrencySymbol/currencySymbol.js b/js/src/ui/CurrencySymbol/currencySymbol.js
index 3322b0301..8698d070c 100644
--- a/js/src/ui/CurrencySymbol/currencySymbol.js
+++ b/js/src/ui/CurrencySymbol/currencySymbol.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
const SYMBOL_ETC = 'ETC';
diff --git a/js/src/ui/DappCard/dappCard.css b/js/src/ui/DappCard/dappCard.css
index 9b8705201..5ab1e4b36 100644
--- a/js/src/ui/DappCard/dappCard.css
+++ b/js/src/ui/DappCard/dappCard.css
@@ -29,9 +29,14 @@
}
.image {
- left: 1.5em;
+ color: rgba(0, 0, 0, 0.5);
+ left: 1.5rem;
position: absolute;
- top: 1.5em;
+ top: 1.5rem;
+}
+
+i.image {
+ top: 2.75rem;
}
.author,
diff --git a/js/src/ui/DappCard/dappCard.js b/js/src/ui/DappCard/dappCard.js
index cd02333c2..d6ffa8699 100644
--- a/js/src/ui/DappCard/dappCard.js
+++ b/js/src/ui/DappCard/dappCard.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import Container, { Title as ContainerTitle } from '~/ui/Container';
import DappIcon from '~/ui/DappIcon';
@@ -49,11 +50,6 @@ export default class DappCard extends Component {
className={
[styles.container, className].join(' ')
}
- hover={
-
- { app.author }, v{ app.version }
-
- }
link={ this.getLink(app) }
onClick={ onClick }
>
@@ -79,6 +75,9 @@ export default class DappCard extends Component {
title={ app.name }
byline={ app.description }
/>
+
+ { app.author }, v{ app.version }
+
{ children }
diff --git a/js/src/ui/DappIcon/dappIcon.css b/js/src/ui/DappIcon/dappIcon.css
index 95ceed864..4bc210b88 100644
--- a/js/src/ui/DappIcon/dappIcon.css
+++ b/js/src/ui/DappIcon/dappIcon.css
@@ -23,9 +23,11 @@
.normal {
height: 56px;
width: 56px;
+ font-size: 49px !important;
}
.small {
height: 32px;
width: 32px;
+ font-size: 28px !important;
}
diff --git a/js/src/ui/DappIcon/dappIcon.js b/js/src/ui/DappIcon/dappIcon.js
index ddff7b47d..3fec84264 100644
--- a/js/src/ui/DappIcon/dappIcon.js
+++ b/js/src/ui/DappIcon/dappIcon.js
@@ -14,18 +14,26 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import { createIcon } from '~/ui/Icons';
import styles from './dappIcon.css';
export default function DappIcon ({ app, className, small }, { api }) {
const { dappsUrl } = api;
+ const classes = [
+ styles.icon, styles[small ? 'small' : 'normal'], className
+ ].join(' ');
+
+ if (app['semantic-icon']) {
+ return createIcon(app['semantic-icon'], { className: classes });
+ }
return (
.
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Errors/errors.js b/js/src/ui/Errors/errors.js
index 3f0a59157..3f1eb393d 100644
--- a/js/src/ui/Errors/errors.js
+++ b/js/src/ui/Errors/errors.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/ui/Form/AddressSelect/addressSelect.js b/js/src/ui/Form/AddressSelect/addressSelect.js
index 787bfb04a..b5a162511 100644
--- a/js/src/ui/Form/AddressSelect/addressSelect.js
+++ b/js/src/ui/Form/AddressSelect/addressSelect.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import { connect } from 'react-redux';
import keycode, { codes } from 'keycode';
diff --git a/js/src/ui/Form/Checkbox/checkbox.js b/js/src/ui/Form/Checkbox/checkbox.js
index e5aeb2a67..8b2104bae 100644
--- a/js/src/ui/Form/Checkbox/checkbox.js
+++ b/js/src/ui/Form/Checkbox/checkbox.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Checkbox as SemanticCheckbox } from 'semantic-ui-react';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/DappUrlInput/dappUrlInput.js b/js/src/ui/Form/DappUrlInput/dappUrlInput.js
index a513059df..3742ad8f4 100644
--- a/js/src/ui/Form/DappUrlInput/dappUrlInput.js
+++ b/js/src/ui/Form/DappUrlInput/dappUrlInput.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import keycode from 'keycode';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
export default class DappUrlInput extends Component {
static propTypes = {
diff --git a/js/src/ui/Form/Dropdown/dropdown.js b/js/src/ui/Form/Dropdown/dropdown.js
index 39b36c737..43a0da979 100644
--- a/js/src/ui/Form/Dropdown/dropdown.js
+++ b/js/src/ui/Form/Dropdown/dropdown.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Dropdown as SemanticDropdown } from 'semantic-ui-react';
import { parseI18NString } from '@parity/shared/util/messages';
diff --git a/js/src/ui/Form/FileSelect/fileSelect.js b/js/src/ui/Form/FileSelect/fileSelect.js
index 49340495e..5c919dbfa 100644
--- a/js/src/ui/Form/FileSelect/fileSelect.js
+++ b/js/src/ui/Form/FileSelect/fileSelect.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import Dropzone from 'react-dropzone';
import { FormattedMessage } from 'react-intl';
diff --git a/js/src/ui/Form/Input/input.js b/js/src/ui/Form/Input/input.js
index da9dbaba8..58a251c09 100644
--- a/js/src/ui/Form/Input/input.js
+++ b/js/src/ui/Form/Input/input.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { noop } from 'lodash';
import keycode from 'keycode';
import { Input as SemanticInput } from 'semantic-ui-react';
diff --git a/js/src/ui/Form/InputAddress/inputAddress.js b/js/src/ui/Form/InputAddress/inputAddress.js
index 6e10a1c98..16ca40c3c 100644
--- a/js/src/ui/Form/InputAddress/inputAddress.js
+++ b/js/src/ui/Form/InputAddress/inputAddress.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import util from '@parity/api/util';
diff --git a/js/src/ui/Form/InputAddressSelect/inputAddressSelect.js b/js/src/ui/Form/InputAddressSelect/inputAddressSelect.js
index 0cc4f4d19..80dd287da 100644
--- a/js/src/ui/Form/InputAddressSelect/inputAddressSelect.js
+++ b/js/src/ui/Form/InputAddressSelect/inputAddressSelect.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/InputChip/Chip/chip.js b/js/src/ui/Form/InputChip/Chip/chip.js
index dd5c1b3da..3dd39bdf4 100644
--- a/js/src/ui/Form/InputChip/Chip/chip.js
+++ b/js/src/ui/Form/InputChip/Chip/chip.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/InputChip/inputChip.js b/js/src/ui/Form/InputChip/inputChip.js
index 82fc5a24d..2fcc3ebd1 100644
--- a/js/src/ui/Form/InputChip/inputChip.js
+++ b/js/src/ui/Form/InputChip/inputChip.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import keycode from 'keycode';
import { uniq } from 'lodash';
import { Input as SemanticInput } from 'semantic-ui-react';
diff --git a/js/src/ui/Form/InputDateTime/inputDateTime.js b/js/src/ui/Form/InputDateTime/inputDateTime.js
index 4b0b16c3b..b8403b524 100644
--- a/js/src/ui/Form/InputDateTime/inputDateTime.js
+++ b/js/src/ui/Form/InputDateTime/inputDateTime.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import DateTime from 'react-datetime';
import { parseI18NString } from '@parity/shared/util/messages';
diff --git a/js/src/ui/Form/Label/label.js b/js/src/ui/Form/Label/label.js
index 0ad268ac7..ca55da803 100644
--- a/js/src/ui/Form/Label/label.js
+++ b/js/src/ui/Form/Label/label.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/LabelWrapper/labelWrapper.js b/js/src/ui/Form/LabelWrapper/labelWrapper.js
index a7b420763..da5e78c66 100644
--- a/js/src/ui/Form/LabelWrapper/labelWrapper.js
+++ b/js/src/ui/Form/LabelWrapper/labelWrapper.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/PasswordStrength/passwordStrength.js b/js/src/ui/Form/PasswordStrength/passwordStrength.js
index dc3cb0e71..7caeb3eb4 100644
--- a/js/src/ui/Form/PasswordStrength/passwordStrength.js
+++ b/js/src/ui/Form/PasswordStrength/passwordStrength.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { debounce } from 'lodash';
import { FormattedMessage } from 'react-intl';
import zxcvbn from 'zxcvbn';
diff --git a/js/src/ui/Form/RadioButtons/radioButtons.js b/js/src/ui/Form/RadioButtons/radioButtons.js
index 0371f2c84..a502bbaf5 100644
--- a/js/src/ui/Form/RadioButtons/radioButtons.js
+++ b/js/src/ui/Form/RadioButtons/radioButtons.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Radio as SemanticRadio } from 'semantic-ui-react';
import { arrayOrObjectProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Form/Slider/slider.js b/js/src/ui/Form/Slider/slider.js
index 3bc3c3456..5e76a7fdb 100644
--- a/js/src/ui/Form/Slider/slider.js
+++ b/js/src/ui/Form/Slider/slider.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './slider.css';
diff --git a/js/src/ui/Form/Toggle/toggle.js b/js/src/ui/Form/Toggle/toggle.js
index 23527fd72..ed0e04e6d 100644
--- a/js/src/ui/Form/Toggle/toggle.js
+++ b/js/src/ui/Form/Toggle/toggle.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Radio as SemanticRadio } from 'semantic-ui-react';
import LabelWrapper from '../LabelWrapper';
diff --git a/js/src/ui/Form/TypedInput/typedInput.js b/js/src/ui/Form/TypedInput/typedInput.js
index 99141cb44..c5540a6fd 100644
--- a/js/src/ui/Form/TypedInput/typedInput.js
+++ b/js/src/ui/Form/TypedInput/typedInput.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { range } from 'lodash';
import BigNumber from 'bignumber.js';
diff --git a/js/src/ui/Form/VaultSelect/VaultSelector/vaultSelector.js b/js/src/ui/Form/VaultSelect/VaultSelector/vaultSelector.js
index 4fceb5cb0..69f0a204e 100644
--- a/js/src/ui/Form/VaultSelect/VaultSelector/vaultSelector.js
+++ b/js/src/ui/Form/VaultSelect/VaultSelector/vaultSelector.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import Portal from '~/ui/Portal';
diff --git a/js/src/ui/Form/VaultSelect/vaultSelect.js b/js/src/ui/Form/VaultSelect/vaultSelect.js
index b1db9fc25..19dc39fd2 100644
--- a/js/src/ui/Form/VaultSelect/vaultSelect.js
+++ b/js/src/ui/Form/VaultSelect/vaultSelect.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import VaultStore from '~/views/Vaults/store';
diff --git a/js/src/ui/Form/form.js b/js/src/ui/Form/form.js
index 7353bd254..380b9f7ea 100644
--- a/js/src/ui/Form/form.js
+++ b/js/src/ui/Form/form.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './form.css';
diff --git a/js/src/ui/GasPriceEditor/gasPriceEditor.js b/js/src/ui/GasPriceEditor/gasPriceEditor.js
index 128573829..03ac93fc4 100644
--- a/js/src/ui/GasPriceEditor/gasPriceEditor.js
+++ b/js/src/ui/GasPriceEditor/gasPriceEditor.js
@@ -16,7 +16,8 @@
import BigNumber from 'bignumber.js';
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Input, InputDateTime, RadioButtons } from '../Form';
diff --git a/js/src/ui/GasPriceSelector/CustomBar/customBar.js b/js/src/ui/GasPriceSelector/CustomBar/customBar.js
index 36a378028..3aa580c74 100644
--- a/js/src/ui/GasPriceSelector/CustomBar/customBar.js
+++ b/js/src/ui/GasPriceSelector/CustomBar/customBar.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Rectangle } from 'recharts';
import { COLORS } from '../util';
diff --git a/js/src/ui/GasPriceSelector/CustomCursor/customCursor.js b/js/src/ui/GasPriceSelector/CustomCursor/customCursor.js
index 4b1e81d88..4490175e0 100644
--- a/js/src/ui/GasPriceSelector/CustomCursor/customCursor.js
+++ b/js/src/ui/GasPriceSelector/CustomCursor/customCursor.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Rectangle } from 'recharts';
import { COLORS, countModifier } from '../util';
diff --git a/js/src/ui/GasPriceSelector/CustomShape/customShape.js b/js/src/ui/GasPriceSelector/CustomShape/customShape.js
index 6fc6f7d0b..3b6d23749 100644
--- a/js/src/ui/GasPriceSelector/CustomShape/customShape.js
+++ b/js/src/ui/GasPriceSelector/CustomShape/customShape.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Dot } from 'recharts';
export default class CustomShape extends Component {
diff --git a/js/src/ui/GasPriceSelector/CustomTooltip/customTooltip.js b/js/src/ui/GasPriceSelector/CustomTooltip/customTooltip.js
index ec7afda7e..96c780bec 100644
--- a/js/src/ui/GasPriceSelector/CustomTooltip/customTooltip.js
+++ b/js/src/ui/GasPriceSelector/CustomTooltip/customTooltip.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
export default class CustomTooltip extends Component {
diff --git a/js/src/ui/GasPriceSelector/gasPriceSelector.js b/js/src/ui/GasPriceSelector/gasPriceSelector.js
index da7f011ef..0049847fc 100644
--- a/js/src/ui/GasPriceSelector/gasPriceSelector.js
+++ b/js/src/ui/GasPriceSelector/gasPriceSelector.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Bar, BarChart, ResponsiveContainer, Scatter, ScatterChart, Tooltip, XAxis, YAxis } from 'recharts';
import Slider from '~/ui/Form/Slider';
diff --git a/js/src/ui/Icons/index.js b/js/src/ui/Icons/index.js
index e3a59ca7e..6a48d8f51 100644
--- a/js/src/ui/Icons/index.js
+++ b/js/src/ui/Icons/index.js
@@ -17,65 +17,69 @@
import React from 'react';
import { Icon } from 'semantic-ui-react';
-export const AccountsIcon = (props) => ;
-export const AddIcon = (props) => ;
-export const AddressIcon = (props) => ;
-export const AppsIcon = (props) => ;
-export const AttachFileIcon = (props) => ;
-export const BackgroundIcon = (props) => ;
-export const CancelIcon = (props) => ;
-export const CheckIcon = (props) => ;
-export const CheckboxTickedIcon = (props) => ;
-export const CheckboxUntickedIcon = (props) => ;
-export const CloseIcon = (props) => ;
-export const CompareIcon = (props) => ;
-export const ComputerIcon = (props) => ;
-export const ContractIcon = (props) => ;
-export const CopyIcon = (props) => ;
-export const DashboardIcon = (props) => ;
+export function createIcon (name, props = {}) {
+ return ;
+}
+
+export const AccountsIcon = (props) => createIcon('university', props);
+export const AddIcon = (props) => createIcon('plus', props);
+export const AddressIcon = (props) => createIcon('address book outline', props);
+export const AppsIcon = (props) => createIcon('sitemap', props);
+export const AttachFileIcon = (props) => createIcon('attach', props);
+export const BackgroundIcon = (props) => createIcon('image', props);
+export const CancelIcon = (props) => createIcon('cancel', props);
+export const CheckIcon = (props) => createIcon('check', props);
+export const CheckboxTickedIcon = (props) => createIcon('checkmark box', props);
+export const CheckboxUntickedIcon = (props) => createIcon('square outline', props);
+export const CloseIcon = (props) => createIcon('close', props);
+export const CompareIcon = (props) => createIcon('exchange', props);
+export const ComputerIcon = (props) => createIcon('desktop', props);
+export const ContractIcon = (props) => createIcon('code', props);
+export const CopyIcon = (props) => createIcon('copy', props);
+export const DashboardIcon = (props) => createIcon('cubes', props);
export const DoneIcon = CheckIcon;
-export const DeleteIcon = (props) => ;
-export const DevelopIcon = (props) => ;
-export const DialIcon = (props) => ;
-export const EditIcon = (props) => ;
-export const ErrorIcon = (props) => ;
-export const EthernetIcon = (props) => ;
-export const FileIcon = (props) => ;
-export const FileDownloadIcon = (props) => ;
-export const FileUploadIcon = (props) => ;
-export const FingerprintIcon = (props) => ;
-export const GasIcon = (props) => ;
-export const GotoIcon = (props) => ;
-export const InfoIcon = (props) => ;
-export const KeyIcon = (props) => ;
-export const KeyboardIcon = (props) => ;
-export const LinkIcon = (props) => ;
-export const ListIcon = (props) => ;
-export const LockedIcon = (props) => ;
-export const MembershipIcon = (props) => ;
-export const MethodsIcon = (props) => ;
-export const MoveIcon = (props) => ;
-export const NextIcon = (props) => ;
-export const PauseIcon = (props) => ;
-export const PlayIcon = (props) => ;
-export const PrevIcon = (props) => ;
-export const PrintIcon = (props) => ;
-export const QrIcon = (props) => ;
-export const RefreshIcon = (props) => ;
-export const RemoveIcon = (props) => ;
-export const ReorderIcon = (props) => ;
-export const ReplayIcon = (props) => ;
-export const SaveIcon = (props) => ;
-export const SearchIcon = (props) => ;
-export const SendIcon = (props) => ;
-export const SettingsIcon = (props) => ;
-export const SnoozeIcon = (props) => ;
-export const SortIcon = (props) => ;
-export const StarIcon = (props) => ;
-export const StatusIcon = (props) => ;
-export const UnlockedIcon = (props) => ;
-export const UpdateIcon = (props) => ;
-export const UpdateWaitIcon = (props) => ;
-export const VisibleIcon = (props) => ;
-export const VerifyIcon = (props) => ;
-export const VpnIcon = (props) => ;
+export const DeleteIcon = (props) => createIcon('trash', props);
+export const DevelopIcon = (props) => createIcon('connectdevelop', props);
+export const DialIcon = (props) => createIcon('text telephone', props);
+export const EditIcon = (props) => createIcon('edit', props);
+export const ErrorIcon = (props) => createIcon('exclamation circle', props);
+export const EthernetIcon = (props) => createIcon('wifi', props);
+export const FileIcon = (props) => createIcon('file outline', props);
+export const FileDownloadIcon = (props) => createIcon('download', props);
+export const FileUploadIcon = (props) => createIcon('upload', props);
+export const FingerprintIcon = (props) => createIcon('target', props);
+export const GasIcon = (props) => createIcon('settings', props);
+export const GotoIcon = (props) => createIcon('arrow circle right', props);
+export const InfoIcon = (props) => createIcon('info circle', props);
+export const KeyIcon = (props) => createIcon('key', props);
+export const KeyboardIcon = (props) => createIcon('keyboard', props);
+export const LinkIcon = (props) => createIcon('linkify', props);
+export const ListIcon = (props) => createIcon('list ul', props);
+export const LockedIcon = (props) => createIcon('unlock alternate', props);
+export const MembershipIcon = (props) => createIcon('id card outline', props);
+export const MethodsIcon = (props) => createIcon('map signs', props);
+export const MoveIcon = (props) => createIcon('move', props);
+export const NextIcon = (props) => createIcon('chevron right', props);
+export const PauseIcon = (props) => createIcon('pause', props);
+export const PlayIcon = (props) => createIcon('play', props);
+export const PrevIcon = (props) => createIcon('chevron left', props);
+export const PrintIcon = (props) => createIcon('print', props);
+export const QrIcon = (props) => createIcon('qrcode', props);
+export const RefreshIcon = (props) => createIcon('refresh', props);
+export const RemoveIcon = (props) => createIcon('remove', props);
+export const ReorderIcon = (props) => createIcon('align justify', props);
+export const ReplayIcon = (props) => createIcon('retweet', props);
+export const SaveIcon = (props) => createIcon('save', props);
+export const SearchIcon = (props) => createIcon('search', props);
+export const SendIcon = (props) => createIcon('send', props);
+export const SettingsIcon = (props) => createIcon('settings', props);
+export const SnoozeIcon = (props) => createIcon('clock', props);
+export const SortIcon = (props) => createIcon('filter', props);
+export const StarIcon = (props) => createIcon('star', props);
+export const StatusIcon = (props) => createIcon('signal', props);
+export const UnlockedIcon = (props) => createIcon('unlock', props);
+export const UpdateIcon = (props) => createIcon('cloud download', props);
+export const UpdateWaitIcon = (props) => createIcon('wait', props);
+export const VisibleIcon = (props) => createIcon('eye', props);
+export const VerifyIcon = (props) => createIcon('shield', props);
+export const VpnIcon = (props) => createIcon('world', props);
diff --git a/js/src/ui/IdentityIcon/identityIcon.js b/js/src/ui/IdentityIcon/identityIcon.js
index ca849fc6b..d39fdb762 100644
--- a/js/src/ui/IdentityIcon/identityIcon.js
+++ b/js/src/ui/IdentityIcon/identityIcon.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { createIdentityImg } from '@parity/api/util/identity';
import { isNullAddress } from '@parity/shared/util/validation';
diff --git a/js/src/ui/IdentityName/identityName.js b/js/src/ui/IdentityName/identityName.js
index 12a864f29..f7272b03c 100644
--- a/js/src/ui/IdentityName/identityName.js
+++ b/js/src/ui/IdentityName/identityName.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/ui/List/Item/item.js b/js/src/ui/List/Item/item.js
index d9549e4b7..7fcba906d 100644
--- a/js/src/ui/List/Item/item.js
+++ b/js/src/ui/List/Item/item.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { List as SemanticList } from 'semantic-ui-react';
import styles from './item.css';
diff --git a/js/src/ui/List/list.js b/js/src/ui/List/list.js
index fb70e9233..5db2ee68a 100644
--- a/js/src/ui/List/list.js
+++ b/js/src/ui/List/list.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { List as SemanticList } from 'semantic-ui-react';
import LabelWrapper from '../Form/LabelWrapper';
diff --git a/js/src/ui/Loading/loading.js b/js/src/ui/Loading/loading.js
index 383c4b798..ae7cbf262 100644
--- a/js/src/ui/Loading/loading.js
+++ b/js/src/ui/Loading/loading.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Loader as SemanticLoader } from 'semantic-ui-react';
import styles from './loading.css';
diff --git a/js/src/ui/MethodDecoding/methodDecoding.js b/js/src/ui/MethodDecoding/methodDecoding.js
index 52d494b30..59d91436c 100644
--- a/js/src/ui/MethodDecoding/methodDecoding.js
+++ b/js/src/ui/MethodDecoding/methodDecoding.js
@@ -16,7 +16,8 @@
import BigNumber from 'bignumber.js';
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/ui/Modal/Busy/busy.js b/js/src/ui/Modal/Busy/busy.js
index 027472971..4c285b45d 100644
--- a/js/src/ui/Modal/Busy/busy.js
+++ b/js/src/ui/Modal/Busy/busy.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Modal/Completed/completed.js b/js/src/ui/Modal/Completed/completed.js
index 8ba96fe85..9cfd9b80b 100644
--- a/js/src/ui/Modal/Completed/completed.js
+++ b/js/src/ui/Modal/Completed/completed.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './completed.css';
diff --git a/js/src/ui/ModalBox/modalBox.js b/js/src/ui/ModalBox/modalBox.js
index 5134f89fe..ef592aacd 100644
--- a/js/src/ui/ModalBox/modalBox.js
+++ b/js/src/ui/ModalBox/modalBox.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Page/page.css b/js/src/ui/Page/page.css
index c13f49d6d..9e2043416 100644
--- a/js/src/ui/Page/page.css
+++ b/js/src/ui/Page/page.css
@@ -23,9 +23,9 @@
}
.layout {
- padding: 0.25em 0.25em 3em 0.25em;
+ padding: 0 1.5em 3em 1.5em;
}
.layoutPadded {
- padding: 0.5em 0.5em 3em 0.5em;
+ padding: 0.5em 1.5em 3em 1.5em;
}
diff --git a/js/src/ui/Page/page.js b/js/src/ui/Page/page.js
index 6234e1084..e8a695b81 100644
--- a/js/src/ui/Page/page.js
+++ b/js/src/ui/Page/page.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import Actionbar from '../Actionbar';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/ParityBackground/parityBackground.js b/js/src/ui/ParityBackground/parityBackground.js
index fa839522b..a760bf265 100644
--- a/js/src/ui/ParityBackground/parityBackground.js
+++ b/js/src/ui/ParityBackground/parityBackground.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import GeoPattern from 'geopattern';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
const imageCache = {};
diff --git a/js/src/ui/Popup/popup.js b/js/src/ui/Popup/popup.js
index 663fe4dd8..536bca0a1 100644
--- a/js/src/ui/Popup/popup.js
+++ b/js/src/ui/Popup/popup.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Popup as SemanticPopup } from 'semantic-ui-react';
export default function Popup ({ children, className, isOpen, trigger, triggerOn }) {
diff --git a/js/src/ui/Portal/portal.js b/js/src/ui/Portal/portal.js
index 34e4db1a8..cce50387c 100644
--- a/js/src/ui/Portal/portal.js
+++ b/js/src/ui/Portal/portal.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
// TODO: semantic-ui-react exposes Portal component, use that
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import ReactPortal from 'react-portal';
import keycode from 'keycode';
diff --git a/js/src/ui/Progress/progress.js b/js/src/ui/Progress/progress.js
index 5c1bf6b9f..af59acc74 100644
--- a/js/src/ui/Progress/progress.js
+++ b/js/src/ui/Progress/progress.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Progress as SemanticProgress } from 'semantic-ui-react';
export default function Progress ({ className, color, isDeterminate, max, style, value }) {
diff --git a/js/src/ui/QrCode/qrCode.js b/js/src/ui/QrCode/qrCode.js
index 967639b98..82c6b89c7 100644
--- a/js/src/ui/QrCode/qrCode.js
+++ b/js/src/ui/QrCode/qrCode.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import qrcode from 'qrcode-generator';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { calculateType } from './qrSize';
diff --git a/js/src/ui/QrScan/qrScan.js b/js/src/ui/QrScan/qrScan.js
index d75e7d0e9..71f46668e 100644
--- a/js/src/ui/QrScan/qrScan.js
+++ b/js/src/ui/QrScan/qrScan.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import Reader from 'react-qr-reader';
import styles from './qrScan.css';
diff --git a/js/src/ui/ScrollableText/scrollableText.js b/js/src/ui/ScrollableText/scrollableText.js
index 0ea21fb3f..7d59999e4 100644
--- a/js/src/ui/ScrollableText/scrollableText.js
+++ b/js/src/ui/ScrollableText/scrollableText.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './scrollableText.css';
diff --git a/js/src/ui/SectionList/sectionList.css b/js/src/ui/SectionList/sectionList.css
index 39a124f5b..b9762e60d 100644
--- a/js/src/ui/SectionList/sectionList.css
+++ b/js/src/ui/SectionList/sectionList.css
@@ -58,5 +58,5 @@ $widthContracted: 29%;
}
.section + .section {
- margin-top: 1em;
+ margin-top: 2em;
}
diff --git a/js/src/ui/SectionList/sectionList.js b/js/src/ui/SectionList/sectionList.js
index a9f6ea3ec..797930df7 100644
--- a/js/src/ui/SectionList/sectionList.js
+++ b/js/src/ui/SectionList/sectionList.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { arrayOrObjectProptype, nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/SelectionList/selectionList.js b/js/src/ui/SelectionList/selectionList.js
index b63e6f0b0..0d4730559 100644
--- a/js/src/ui/SelectionList/selectionList.js
+++ b/js/src/ui/SelectionList/selectionList.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { noop } from 'lodash';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { arrayOrObjectProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/ShortenedHash/shortenedHash.js b/js/src/ui/ShortenedHash/shortenedHash.js
index b52516af4..c264006fd 100644
--- a/js/src/ui/ShortenedHash/shortenedHash.js
+++ b/js/src/ui/ShortenedHash/shortenedHash.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import styles from './shortenedHash.css';
diff --git a/js/src/ui/SignerIcon/signerIcon.js b/js/src/ui/SignerIcon/signerIcon.js
index f690088bb..10df42eaf 100644
--- a/js/src/ui/SignerIcon/signerIcon.js
+++ b/js/src/ui/SignerIcon/signerIcon.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { keccak_256 } from 'js-sha3'; // eslint-disable-line camelcase
diff --git a/js/src/ui/Snackbar/snackbar.js b/js/src/ui/Snackbar/snackbar.js
index d84bc9eab..17992b67e 100644
--- a/js/src/ui/Snackbar/snackbar.js
+++ b/js/src/ui/Snackbar/snackbar.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import styles from './snackbar.css';
diff --git a/js/src/ui/StackEventListener/stackEventListener.js b/js/src/ui/StackEventListener/stackEventListener.js
index 586ddcad6..278cb7fcb 100644
--- a/js/src/ui/StackEventListener/stackEventListener.js
+++ b/js/src/ui/StackEventListener/stackEventListener.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import ReactEventListener from 'react-event-listener';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
let listenerId = 0;
let listenerIds = [];
diff --git a/js/src/ui/StatusIndicator/statusIndicator.js b/js/src/ui/StatusIndicator/statusIndicator.js
index cacce2a36..860f2deb5 100644
--- a/js/src/ui/StatusIndicator/statusIndicator.js
+++ b/js/src/ui/StatusIndicator/statusIndicator.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactTooltip from 'react-tooltip';
import styles from './statusIndicator.css';
diff --git a/js/src/ui/Steps/Step/step.js b/js/src/ui/Steps/Step/step.js
index dafcc554f..8e185f963 100644
--- a/js/src/ui/Steps/Step/step.js
+++ b/js/src/ui/Steps/Step/step.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Step as SemanticStep } from 'semantic-ui-react';
export default function Step ({ className, isActive, isCompleted, label }) {
diff --git a/js/src/ui/Steps/steps.js b/js/src/ui/Steps/steps.js
index a35b7ade0..540c860f4 100644
--- a/js/src/ui/Steps/steps.js
+++ b/js/src/ui/Steps/steps.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Step as SemanticStep } from 'semantic-ui-react';
import Step from './Step';
diff --git a/js/src/ui/Tabs/Tab/tab.js b/js/src/ui/Tabs/Tab/tab.js
index c4a30f40f..be7f4e18a 100644
--- a/js/src/ui/Tabs/Tab/tab.js
+++ b/js/src/ui/Tabs/Tab/tab.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Menu as SemanticMenu } from 'semantic-ui-react';
export default function Tab ({ isActive, className, index, label, name, onClick, style }) {
diff --git a/js/src/ui/Tabs/tabs.js b/js/src/ui/Tabs/tabs.js
index af934c9dc..ee49c70e1 100644
--- a/js/src/ui/Tabs/tabs.js
+++ b/js/src/ui/Tabs/tabs.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Menu as SemanticMenu } from 'semantic-ui-react';
import Tab from './Tab';
diff --git a/js/src/ui/Tags/tags.js b/js/src/ui/Tags/tags.js
index 30f2c434f..c02845ebd 100644
--- a/js/src/ui/Tags/tags.js
+++ b/js/src/ui/Tags/tags.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { arrayOrObjectProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/Title/Waiting/waiting.js b/js/src/ui/Title/Waiting/waiting.js
index 1c27cd2d8..43ec55a93 100644
--- a/js/src/ui/Title/Waiting/waiting.js
+++ b/js/src/ui/Title/Waiting/waiting.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import Progress from '~/ui/Progress';
diff --git a/js/src/ui/Title/title.js b/js/src/ui/Title/title.js
index 0c9240c3a..6717d0036 100644
--- a/js/src/ui/Title/title.js
+++ b/js/src/ui/Title/title.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/ui/TokenImage/tokenImage.js b/js/src/ui/TokenImage/tokenImage.js
index c3de75506..d2618aa81 100644
--- a/js/src/ui/TokenImage/tokenImage.js
+++ b/js/src/ui/TokenImage/tokenImage.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import unknownImage from '@parity/shared/assets/images/contracts/unknown-64x64.png';
import IconCache from '~/ui/IconCache';
diff --git a/js/src/ui/TxHash/txHash.js b/js/src/ui/TxHash/txHash.js
index b9c32b884..45d98f625 100644
--- a/js/src/ui/TxHash/txHash.js
+++ b/js/src/ui/TxHash/txHash.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/ui/TxList/TxRow/txRow.js b/js/src/ui/TxList/TxRow/txRow.js
index 521a10a5d..a2c342897 100644
--- a/js/src/ui/TxList/TxRow/txRow.js
+++ b/js/src/ui/TxList/TxRow/txRow.js
@@ -17,7 +17,8 @@
import moment from 'moment';
import dateDifference from 'date-difference';
import { FormattedMessage } from 'react-intl';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { txLink } from '~/3rdparty/etherscan/links';
diff --git a/js/src/ui/TxList/txList.js b/js/src/ui/TxList/txList.js
index eb75e28e3..220519eac 100644
--- a/js/src/ui/TxList/txList.js
+++ b/js/src/ui/TxList/txList.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import Store from './store';
diff --git a/js/src/ui/VaultCard/Accounts/accounts.js b/js/src/ui/VaultCard/Accounts/accounts.js
index eb3dc661c..0fa6f003f 100644
--- a/js/src/ui/VaultCard/Accounts/accounts.js
+++ b/js/src/ui/VaultCard/Accounts/accounts.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import DappLink from '~/ui/DappLink';
diff --git a/js/src/ui/VaultCard/Buttons/buttons.js b/js/src/ui/VaultCard/Buttons/buttons.js
index d3e7fb7bd..bda4deeea 100644
--- a/js/src/ui/VaultCard/Buttons/buttons.js
+++ b/js/src/ui/VaultCard/Buttons/buttons.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import Button from '~/ui/Button';
import { LockedIcon, UnlockedIcon } from '~/ui/Icons';
diff --git a/js/src/ui/VaultCard/Layout/layout.js b/js/src/ui/VaultCard/Layout/layout.js
index 8ef795791..c3e800b78 100644
--- a/js/src/ui/VaultCard/Layout/layout.js
+++ b/js/src/ui/VaultCard/Layout/layout.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import Title from '~/ui/Title';
import IdentityIcon from '~/ui/IdentityIcon';
diff --git a/js/src/ui/VaultCard/vaultCard.js b/js/src/ui/VaultCard/vaultCard.js
index f6f5e460d..b93d89c48 100644
--- a/js/src/ui/VaultCard/vaultCard.js
+++ b/js/src/ui/VaultCard/vaultCard.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import Container from '~/ui/Container';
diff --git a/js/src/ui/VaultTag/vaultTag.js b/js/src/ui/VaultTag/vaultTag.js
index 196c5b8e4..ad22f2432 100644
--- a/js/src/ui/VaultTag/vaultTag.js
+++ b/js/src/ui/VaultTag/vaultTag.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import IdentityIcon from '~/ui/IdentityIcon';
diff --git a/js/src/views/Account/DeleteAccount/deleteAccount.js b/js/src/views/Account/DeleteAccount/deleteAccount.js
index bc4ffca69..65c9c7c98 100644
--- a/js/src/views/Account/DeleteAccount/deleteAccount.js
+++ b/js/src/views/Account/DeleteAccount/deleteAccount.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Account/EditMeta/editMeta.js b/js/src/views/Account/EditMeta/editMeta.js
index 961d8ec41..77ab5bfb8 100644
--- a/js/src/views/Account/EditMeta/editMeta.js
+++ b/js/src/views/Account/EditMeta/editMeta.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Account/Faucet/faucet.js b/js/src/views/Account/Faucet/faucet.js
index e06b60c31..0ae5a019d 100644
--- a/js/src/views/Account/Faucet/faucet.js
+++ b/js/src/views/Account/Faucet/faucet.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { txLink } from '~/3rdparty/etherscan/links';
diff --git a/js/src/views/Account/Header/header.js b/js/src/views/Account/Header/header.js
index ffe3f8f2d..d571be41c 100644
--- a/js/src/views/Account/Header/header.js
+++ b/js/src/views/Account/Header/header.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Balance, Certifications, Container, CopyToClipboard, ContainerTitle, IdentityIcon, IdentityName, QrCode, Tags, VaultTag } from '@parity/ui';
diff --git a/js/src/views/Account/PasswordManager/passwordManager.js b/js/src/views/Account/PasswordManager/passwordManager.js
index 7457c2f8e..e17d1ec9f 100644
--- a/js/src/views/Account/PasswordManager/passwordManager.js
+++ b/js/src/views/Account/PasswordManager/passwordManager.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Account/Shapeshift/AwaitingDepositStep/awaitingDepositStep.js b/js/src/views/Account/Shapeshift/AwaitingDepositStep/awaitingDepositStep.js
index ef56b0f73..60bf121e4 100644
--- a/js/src/views/Account/Shapeshift/AwaitingDepositStep/awaitingDepositStep.js
+++ b/js/src/views/Account/Shapeshift/AwaitingDepositStep/awaitingDepositStep.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { CopyToClipboard, QrCode } from '@parity/ui';
diff --git a/js/src/views/Account/Shapeshift/AwaitingExchangeStep/awaitingExchangeStep.js b/js/src/views/Account/Shapeshift/AwaitingExchangeStep/awaitingExchangeStep.js
index 14cb1e51f..67fdd77b3 100644
--- a/js/src/views/Account/Shapeshift/AwaitingExchangeStep/awaitingExchangeStep.js
+++ b/js/src/views/Account/Shapeshift/AwaitingExchangeStep/awaitingExchangeStep.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { observer } from 'mobx-react';
diff --git a/js/src/views/Account/Shapeshift/CompletedStep/completedStep.js b/js/src/views/Account/Shapeshift/CompletedStep/completedStep.js
index 90f6b3eb6..135fd4abb 100644
--- a/js/src/views/Account/Shapeshift/CompletedStep/completedStep.js
+++ b/js/src/views/Account/Shapeshift/CompletedStep/completedStep.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import Value from '../Value';
diff --git a/js/src/views/Account/Shapeshift/ErrorStep/errorStep.js b/js/src/views/Account/Shapeshift/ErrorStep/errorStep.js
index c603a4b77..d8e5ad72e 100644
--- a/js/src/views/Account/Shapeshift/ErrorStep/errorStep.js
+++ b/js/src/views/Account/Shapeshift/ErrorStep/errorStep.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import styles from '../shapeshift.css';
diff --git a/js/src/views/Account/Shapeshift/OptionsStep/optionsStep.js b/js/src/views/Account/Shapeshift/OptionsStep/optionsStep.js
index 0e1b430bb..0f52f81d2 100644
--- a/js/src/views/Account/Shapeshift/OptionsStep/optionsStep.js
+++ b/js/src/views/Account/Shapeshift/OptionsStep/optionsStep.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Checkbox, Dropdown, Form, Input, Warning } from '@parity/ui';
diff --git a/js/src/views/Account/Shapeshift/Price/price.js b/js/src/views/Account/Shapeshift/Price/price.js
index bd72a7498..672c2d11b 100644
--- a/js/src/views/Account/Shapeshift/Price/price.js
+++ b/js/src/views/Account/Shapeshift/Price/price.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import Value from '../Value';
diff --git a/js/src/views/Account/Shapeshift/Value/value.js b/js/src/views/Account/Shapeshift/Value/value.js
index 535d17ad7..d1d48eea3 100644
--- a/js/src/views/Account/Shapeshift/Value/value.js
+++ b/js/src/views/Account/Shapeshift/Value/value.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import styles from './value.css';
diff --git a/js/src/views/Account/Shapeshift/shapeshift.js b/js/src/views/Account/Shapeshift/shapeshift.js
index e30a9e750..6b42f110b 100644
--- a/js/src/views/Account/Shapeshift/shapeshift.js
+++ b/js/src/views/Account/Shapeshift/shapeshift.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button, IdentityIcon, Portal } from '@parity/ui';
diff --git a/js/src/views/Account/Transactions/transactions.js b/js/src/views/Account/Transactions/transactions.js
index 560d6c185..7ea8f79b7 100644
--- a/js/src/views/Account/Transactions/transactions.js
+++ b/js/src/views/Account/Transactions/transactions.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Account/Transfer/Details/details.js b/js/src/views/Account/Transfer/Details/details.js
index d3d0aa7a6..fe7f03db2 100644
--- a/js/src/views/Account/Transfer/Details/details.js
+++ b/js/src/views/Account/Transfer/Details/details.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nullableProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/views/Account/Transfer/Details/tokenSelect.js b/js/src/views/Account/Transfer/Details/tokenSelect.js
index 0abbb4657..44fdf31bf 100644
--- a/js/src/views/Account/Transfer/Details/tokenSelect.js
+++ b/js/src/views/Account/Transfer/Details/tokenSelect.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { isEqual } from 'lodash';
diff --git a/js/src/views/Account/Transfer/Extras/extras.js b/js/src/views/Account/Transfer/Extras/extras.js
index c432780a6..04400d677 100644
--- a/js/src/views/Account/Transfer/Extras/extras.js
+++ b/js/src/views/Account/Transfer/Extras/extras.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { GasPriceEditor, Form, Input } from '@parity/ui';
diff --git a/js/src/views/Account/Transfer/transfer.js b/js/src/views/Account/Transfer/transfer.js
index 4c7c80542..dd5d80414 100644
--- a/js/src/views/Account/Transfer/transfer.js
+++ b/js/src/views/Account/Transfer/transfer.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Account/Verification/GatherData/gatherData.js b/js/src/views/Account/Verification/GatherData/gatherData.js
index 192a131a0..7f4fffc76 100644
--- a/js/src/views/Account/Verification/GatherData/gatherData.js
+++ b/js/src/views/Account/Verification/GatherData/gatherData.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import BigNumber from 'bignumber.js';
diff --git a/js/src/views/Account/Verification/QueryCode/queryCode.js b/js/src/views/Account/Verification/QueryCode/queryCode.js
index c6e748ba1..f4d8ca563 100644
--- a/js/src/views/Account/Verification/QueryCode/queryCode.js
+++ b/js/src/views/Account/Verification/QueryCode/queryCode.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/views/Account/Verification/SendConfirmation/sendConfirmation.js b/js/src/views/Account/Verification/SendConfirmation/sendConfirmation.js
index 7d6b1780a..c7efd3021 100644
--- a/js/src/views/Account/Verification/SendConfirmation/sendConfirmation.js
+++ b/js/src/views/Account/Verification/SendConfirmation/sendConfirmation.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nullableProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/views/Account/Verification/SendRequest/sendRequest.js b/js/src/views/Account/Verification/SendRequest/sendRequest.js
index bdaebb237..0bf55ab55 100644
--- a/js/src/views/Account/Verification/SendRequest/sendRequest.js
+++ b/js/src/views/Account/Verification/SendRequest/sendRequest.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { nullableProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/views/Account/Verification/verification.js b/js/src/views/Account/Verification/verification.js
index d7f0832d2..ac876cd04 100644
--- a/js/src/views/Account/Verification/verification.js
+++ b/js/src/views/Account/Verification/verification.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { observer } from 'mobx-react';
diff --git a/js/src/views/Account/account.js b/js/src/views/Account/account.js
index 03cf7f8c5..5907b8d85 100644
--- a/js/src/views/Account/account.js
+++ b/js/src/views/Account/account.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Accounts/CreateAccount/AccountDetails/accountDetails.js b/js/src/views/Accounts/CreateAccount/AccountDetails/accountDetails.js
index 99cf49a59..d8c58d382 100644
--- a/js/src/views/Accounts/CreateAccount/AccountDetails/accountDetails.js
+++ b/js/src/views/Accounts/CreateAccount/AccountDetails/accountDetails.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { IdentityIcon, Input, QrCode, Title } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/AccountDetailsGeth/accountDetailsGeth.js b/js/src/views/Accounts/CreateAccount/AccountDetailsGeth/accountDetailsGeth.js
index f8a8caaa8..662e0bfe2 100644
--- a/js/src/views/Accounts/CreateAccount/AccountDetailsGeth/accountDetailsGeth.js
+++ b/js/src/views/Accounts/CreateAccount/AccountDetailsGeth/accountDetailsGeth.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { SectionList } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/ChangeVault/changeVault.js b/js/src/views/Accounts/CreateAccount/ChangeVault/changeVault.js
index 83afdc38d..02fe7da9a 100644
--- a/js/src/views/Accounts/CreateAccount/ChangeVault/changeVault.js
+++ b/js/src/views/Accounts/CreateAccount/ChangeVault/changeVault.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { VaultSelect } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/CreationType/creationType.js b/js/src/views/Accounts/CreateAccount/CreationType/creationType.js
index 664ee4fa8..82655a866 100644
--- a/js/src/views/Accounts/CreateAccount/CreationType/creationType.js
+++ b/js/src/views/Accounts/CreateAccount/CreationType/creationType.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container, SelectionList, Title } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/GethCard/gethCard.js b/js/src/views/Accounts/CreateAccount/GethCard/gethCard.js
index e8ffdf3f8..769666a3f 100644
--- a/js/src/views/Accounts/CreateAccount/GethCard/gethCard.js
+++ b/js/src/views/Accounts/CreateAccount/GethCard/gethCard.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { ETH_TOKEN } from '@parity/shared/util/tokens';
import { AccountCard } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/NewAccount/newAccount.js b/js/src/views/Accounts/CreateAccount/NewAccount/newAccount.js
index 50c16a53f..24d69dd32 100644
--- a/js/src/views/Accounts/CreateAccount/NewAccount/newAccount.js
+++ b/js/src/views/Accounts/CreateAccount/NewAccount/newAccount.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button, Form, Input, IdentityIcon, Loading } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/NewGeth/newGeth.js b/js/src/views/Accounts/CreateAccount/NewGeth/newGeth.js
index 89c89f63d..b4c8bd7dc 100644
--- a/js/src/views/Accounts/CreateAccount/NewGeth/newGeth.js
+++ b/js/src/views/Accounts/CreateAccount/NewGeth/newGeth.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { SelectionList } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/NewImport/newImport.js b/js/src/views/Accounts/CreateAccount/NewImport/newImport.js
index 4e5652a4e..9a6861f5b 100644
--- a/js/src/views/Accounts/CreateAccount/NewImport/newImport.js
+++ b/js/src/views/Accounts/CreateAccount/NewImport/newImport.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Form, FileSelect, Input } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/NewQr/newQr.js b/js/src/views/Accounts/CreateAccount/NewQr/newQr.js
index afa925d72..9d12d7eb0 100644
--- a/js/src/views/Accounts/CreateAccount/NewQr/newQr.js
+++ b/js/src/views/Accounts/CreateAccount/NewQr/newQr.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Form, Input, InputAddress, QrScan } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/RawKey/rawKey.js b/js/src/views/Accounts/CreateAccount/RawKey/rawKey.js
index 89a4da551..699d79767 100644
--- a/js/src/views/Accounts/CreateAccount/RawKey/rawKey.js
+++ b/js/src/views/Accounts/CreateAccount/RawKey/rawKey.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Form, Input } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/RecoveryPhrase/recoveryPhrase.js b/js/src/views/Accounts/CreateAccount/RecoveryPhrase/recoveryPhrase.js
index f380dbf4c..ad480d519 100644
--- a/js/src/views/Accounts/CreateAccount/RecoveryPhrase/recoveryPhrase.js
+++ b/js/src/views/Accounts/CreateAccount/RecoveryPhrase/recoveryPhrase.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Checkbox, Form, Input, Warning } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateAccount/TypeIcon/typeIcon.js b/js/src/views/Accounts/CreateAccount/TypeIcon/typeIcon.js
index 45d26765b..f98c10874 100644
--- a/js/src/views/Accounts/CreateAccount/TypeIcon/typeIcon.js
+++ b/js/src/views/Accounts/CreateAccount/TypeIcon/typeIcon.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { AccountsIcon, DoneIcon, FileIcon, FileUploadIcon, KeyboardIcon, KeyIcon, MembershipIcon, QrIcon } from '@parity/ui/Icons';
diff --git a/js/src/views/Accounts/CreateAccount/createAccount.js b/js/src/views/Accounts/CreateAccount/createAccount.js
index 2e0745ea5..336d397f9 100644
--- a/js/src/views/Accounts/CreateAccount/createAccount.js
+++ b/js/src/views/Accounts/CreateAccount/createAccount.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Accounts/CreateWallet/WalletDetails/walletDetails.js b/js/src/views/Accounts/CreateWallet/WalletDetails/walletDetails.js
index 51ac54f59..1086ce773 100644
--- a/js/src/views/Accounts/CreateWallet/WalletDetails/walletDetails.js
+++ b/js/src/views/Accounts/CreateWallet/WalletDetails/walletDetails.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Form, TypedInput, Input, AddressSelect, InputAddress } from '@parity/ui';
diff --git a/js/src/views/Accounts/CreateWallet/WalletInfo/walletInfo.js b/js/src/views/Accounts/CreateWallet/WalletInfo/walletInfo.js
index 7afda9faa..6aa49eb17 100644
--- a/js/src/views/Accounts/CreateWallet/WalletInfo/walletInfo.js
+++ b/js/src/views/Accounts/CreateWallet/WalletInfo/walletInfo.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { fromWei } from '@parity/api/util/wei';
diff --git a/js/src/views/Accounts/CreateWallet/WalletType/walletType.js b/js/src/views/Accounts/CreateWallet/WalletType/walletType.js
index 97e1b476e..4cad6456d 100644
--- a/js/src/views/Accounts/CreateWallet/WalletType/walletType.js
+++ b/js/src/views/Accounts/CreateWallet/WalletType/walletType.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { walletSourceURL } from '@parity/shared/contracts/code/wallet';
diff --git a/js/src/views/Accounts/CreateWallet/createWallet.js b/js/src/views/Accounts/CreateWallet/createWallet.js
index ea59df09a..3c07c7ce7 100644
--- a/js/src/views/Accounts/CreateWallet/createWallet.js
+++ b/js/src/views/Accounts/CreateWallet/createWallet.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Accounts/ExportAccount/exportAccount.js b/js/src/views/Accounts/ExportAccount/exportAccount.js
index 5780b0161..8b0974208 100644
--- a/js/src/views/Accounts/ExportAccount/exportAccount.js
+++ b/js/src/views/Accounts/ExportAccount/exportAccount.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Accounts/ExportAccount/exportInput/exportInput.js b/js/src/views/Accounts/ExportAccount/exportInput/exportInput.js
index 0725eb556..f6f677fe7 100644
--- a/js/src/views/Accounts/ExportAccount/exportInput/exportInput.js
+++ b/js/src/views/Accounts/ExportAccount/exportInput/exportInput.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Input } from '@parity/ui/Form';
diff --git a/js/src/views/Accounts/List/list.js b/js/src/views/Accounts/List/list.js
index df02e0502..09c4b826c 100644
--- a/js/src/views/Accounts/List/list.js
+++ b/js/src/views/Accounts/List/list.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { pick } from 'lodash';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Accounts/Summary/summary.js b/js/src/views/Accounts/Summary/summary.js
index 991f6951a..59388499f 100644
--- a/js/src/views/Accounts/Summary/summary.js
+++ b/js/src/views/Accounts/Summary/summary.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import BigNumber from 'bignumber.js';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { Link } from 'react-router';
import { isEqual } from 'lodash';
diff --git a/js/src/views/Accounts/accounts.js b/js/src/views/Accounts/accounts.js
index 5b8b77142..28173ebb3 100644
--- a/js/src/views/Accounts/accounts.js
+++ b/js/src/views/Accounts/accounts.js
@@ -17,7 +17,8 @@
import { observe } from 'mobx';
import { observer } from 'mobx-react';
import { uniq, isEqual, pickBy } from 'lodash';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Address/Delete/delete.js b/js/src/views/Address/Delete/delete.js
index 7eae167e7..4aa16772c 100644
--- a/js/src/views/Address/Delete/delete.js
+++ b/js/src/views/Address/Delete/delete.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Address/address.js b/js/src/views/Address/address.js
index af4ab0127..9a0352e69 100644
--- a/js/src/views/Address/address.js
+++ b/js/src/views/Address/address.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Addresses/AddAddress/addAddress.js b/js/src/views/Addresses/AddAddress/addAddress.js
index 561f795fc..894fe504b 100644
--- a/js/src/views/Addresses/AddAddress/addAddress.js
+++ b/js/src/views/Addresses/AddAddress/addAddress.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button, Form, Input, InputAddress, ModalBox, Portal } from '@parity/ui';
diff --git a/js/src/views/Addresses/addresses.js b/js/src/views/Addresses/addresses.js
index 3a8671917..a50cae267 100644
--- a/js/src/views/Addresses/addresses.js
+++ b/js/src/views/Addresses/addresses.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Application/Status/status.js b/js/src/views/Application/Status/status.js
index f44f48eb3..af09cd5e2 100644
--- a/js/src/views/Application/Status/status.js
+++ b/js/src/views/Application/Status/status.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Application/TabBar/tabBar.js b/js/src/views/Application/TabBar/tabBar.js
index 7ac0d8eac..56e8a498a 100644
--- a/js/src/views/Application/TabBar/tabBar.js
+++ b/js/src/views/Application/TabBar/tabBar.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { Link } from 'react-router';
diff --git a/js/src/views/Contract/Events/Event/event.js b/js/src/views/Contract/Events/Event/event.js
index 7c3bb6f55..bce4f2473 100644
--- a/js/src/views/Contract/Events/Event/event.js
+++ b/js/src/views/Contract/Events/Event/event.js
@@ -16,7 +16,8 @@
import BigNumber from 'bignumber.js';
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { IdentityIcon, IdentityName, ShortenedHash, TypedInput } from '@parity/ui';
diff --git a/js/src/views/Contract/Events/events.js b/js/src/views/Contract/Events/events.js
index 930905c3f..b3f7fdd4a 100644
--- a/js/src/views/Contract/Events/events.js
+++ b/js/src/views/Contract/Events/events.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { uniq } from 'lodash';
diff --git a/js/src/views/Contract/ExecuteContract/AdvancedStep/advancedStep.js b/js/src/views/Contract/ExecuteContract/AdvancedStep/advancedStep.js
index 299dff1d9..148a4999a 100644
--- a/js/src/views/Contract/ExecuteContract/AdvancedStep/advancedStep.js
+++ b/js/src/views/Contract/ExecuteContract/AdvancedStep/advancedStep.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { GasPriceEditor } from '@parity/ui';
diff --git a/js/src/views/Contract/ExecuteContract/DetailsStep/detailsStep.js b/js/src/views/Contract/ExecuteContract/DetailsStep/detailsStep.js
index 9f86f2738..f562e0a4b 100644
--- a/js/src/views/Contract/ExecuteContract/DetailsStep/detailsStep.js
+++ b/js/src/views/Contract/ExecuteContract/DetailsStep/detailsStep.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { AddressSelect, Checkbox, Dropdown, Form, Input, TypedInput } from '@parity/ui';
diff --git a/js/src/views/Contract/ExecuteContract/executeContract.js b/js/src/views/Contract/ExecuteContract/executeContract.js
index a7eec9189..0b01b18ce 100644
--- a/js/src/views/Contract/ExecuteContract/executeContract.js
+++ b/js/src/views/Contract/ExecuteContract/executeContract.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Contract/Queries/inputQuery.js b/js/src/views/Contract/Queries/inputQuery.js
index 42b27ac03..c89af54a9 100644
--- a/js/src/views/Contract/Queries/inputQuery.js
+++ b/js/src/views/Contract/Queries/inputQuery.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { isEqual } from 'lodash';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Contract/Queries/queries.js b/js/src/views/Contract/Queries/queries.js
index 4494ef14c..412418683 100644
--- a/js/src/views/Contract/Queries/queries.js
+++ b/js/src/views/Contract/Queries/queries.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container, TypedInput } from '@parity/ui';
diff --git a/js/src/views/Contract/contract.js b/js/src/views/Contract/contract.js
index d8cf5c422..16e8262b5 100644
--- a/js/src/views/Contract/contract.js
+++ b/js/src/views/Contract/contract.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/ContractDevelop/LoadContract/loadContract.js b/js/src/views/ContractDevelop/LoadContract/loadContract.js
index 03732b5a6..2788e2a68 100644
--- a/js/src/views/ContractDevelop/LoadContract/loadContract.js
+++ b/js/src/views/ContractDevelop/LoadContract/loadContract.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Button, List, Portal, Tabs } from '@parity/ui';
diff --git a/js/src/views/ContractDevelop/SaveContract/saveContract.js b/js/src/views/ContractDevelop/SaveContract/saveContract.js
index 8ad88578f..84e3446e8 100644
--- a/js/src/views/ContractDevelop/SaveContract/saveContract.js
+++ b/js/src/views/ContractDevelop/SaveContract/saveContract.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { ERRORS, validateName } from '@parity/shared/util/validation';
diff --git a/js/src/views/Contracts/AddContract/addContract.js b/js/src/views/Contracts/AddContract/addContract.js
index dd96b3993..cadc5256d 100644
--- a/js/src/views/Contracts/AddContract/addContract.js
+++ b/js/src/views/Contracts/AddContract/addContract.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Contracts/DeployContract/DetailsStep/detailsStep.js b/js/src/views/Contracts/DeployContract/DetailsStep/detailsStep.js
index 3162ec959..aceec4c00 100644
--- a/js/src/views/Contracts/DeployContract/DetailsStep/detailsStep.js
+++ b/js/src/views/Contracts/DeployContract/DetailsStep/detailsStep.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { parseAbiType } from '@parity/shared/util/abi';
diff --git a/js/src/views/Contracts/DeployContract/ParametersStep/parametersStep.js b/js/src/views/Contracts/DeployContract/ParametersStep/parametersStep.js
index 27691cebe..89a71bdb6 100644
--- a/js/src/views/Contracts/DeployContract/ParametersStep/parametersStep.js
+++ b/js/src/views/Contracts/DeployContract/ParametersStep/parametersStep.js
@@ -29,7 +29,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { parseAbiType } from '@parity/shared/util/abi';
diff --git a/js/src/views/Contracts/DeployContract/deployContract.js b/js/src/views/Contracts/DeployContract/deployContract.js
index f4998d2d7..d7274dcda 100644
--- a/js/src/views/Contracts/DeployContract/deployContract.js
+++ b/js/src/views/Contracts/DeployContract/deployContract.js
@@ -16,7 +16,8 @@
import BigNumber from 'bignumber.js';
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Contracts/contracts.js b/js/src/views/Contracts/contracts.js
index acf03e037..222bd87f6 100644
--- a/js/src/views/Contracts/contracts.js
+++ b/js/src/views/Contracts/contracts.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/DappAccounts/dappAccounts.js b/js/src/views/DappAccounts/dappAccounts.js
index 37eaf7129..2381a666c 100644
--- a/js/src/views/DappAccounts/dappAccounts.js
+++ b/js/src/views/DappAccounts/dappAccounts.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { AccountCard, Page, SelectionList } from '@parity/ui';
diff --git a/js/src/views/DappMethods/MethodCheck/methodCheck.js b/js/src/views/DappMethods/MethodCheck/methodCheck.js
index fa83b2192..3c036d3a7 100644
--- a/js/src/views/DappMethods/MethodCheck/methodCheck.js
+++ b/js/src/views/DappMethods/MethodCheck/methodCheck.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { CheckboxTickedIcon, CheckboxUntickedIcon } from '@parity/ui/Icons';
diff --git a/js/src/views/DappMethods/dappMethods.js b/js/src/views/DappMethods/dappMethods.js
index ca9074337..84c04c530 100644
--- a/js/src/views/DappMethods/dappMethods.js
+++ b/js/src/views/DappMethods/dappMethods.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Page } from '@parity/ui';
diff --git a/js/src/views/DappVisible/dappVisible.js b/js/src/views/DappVisible/dappVisible.js
index e84297ab7..b772bb83c 100644
--- a/js/src/views/DappVisible/dappVisible.js
+++ b/js/src/views/DappVisible/dappVisible.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { DappCard, Page, SelectionList } from '@parity/ui';
diff --git a/js/src/views/Home/Accounts/accounts.js b/js/src/views/Home/Accounts/accounts.js
index f4beaddd0..1b231fc0d 100644
--- a/js/src/views/Home/Accounts/accounts.js
+++ b/js/src/views/Home/Accounts/accounts.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { Link } from 'react-router';
diff --git a/js/src/views/Home/Dapps/dapp.js b/js/src/views/Home/Dapps/dapp.js
index 5c159a707..df75bac73 100644
--- a/js/src/views/Home/Dapps/dapp.js
+++ b/js/src/views/Home/Dapps/dapp.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router';
diff --git a/js/src/views/Home/Dapps/dapps.js b/js/src/views/Home/Dapps/dapps.js
index 401a1bef7..5a4f9c10b 100644
--- a/js/src/views/Home/Dapps/dapps.js
+++ b/js/src/views/Home/Dapps/dapps.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { arrayOrObjectProptype } from '@parity/shared/util/proptypes';
diff --git a/js/src/views/Home/News/news.js b/js/src/views/Home/News/news.js
index 9d36587ea..97305bc94 100644
--- a/js/src/views/Home/News/news.js
+++ b/js/src/views/Home/News/news.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import ReactMarkdown from 'react-markdown';
import { SectionList } from '@parity/ui';
diff --git a/js/src/views/Home/Urls/urls.js b/js/src/views/Home/Urls/urls.js
index 6815e7cac..1b76f68e8 100644
--- a/js/src/views/Home/Urls/urls.js
+++ b/js/src/views/Home/Urls/urls.js
@@ -16,7 +16,8 @@
import { observer } from 'mobx-react';
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container, ContainerTitle, DappUrlInput, SectionList } from '@parity/ui';
diff --git a/js/src/views/Home/home.js b/js/src/views/Home/home.js
index 921cd21c8..2d9f65031 100644
--- a/js/src/views/Home/home.js
+++ b/js/src/views/Home/home.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { FormattedMessage } from 'react-intl';
diff --git a/js/src/views/Playground/playgroundExample.js b/js/src/views/Playground/playgroundExample.js
index 8a4dae283..425e6d89e 100644
--- a/js/src/views/Playground/playgroundExample.js
+++ b/js/src/views/Playground/playgroundExample.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import reactElementToJSXString from 'react-element-to-jsx-string';
import styles from './playground.css';
diff --git a/js/src/views/Settings/Background/background.js b/js/src/views/Settings/Background/background.js
index ed6b7cbba..923e4edca 100644
--- a/js/src/views/Settings/Background/background.js
+++ b/js/src/views/Settings/Background/background.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Settings/Node/node.js b/js/src/views/Settings/Node/node.js
index b9a9c7934..89408de76 100644
--- a/js/src/views/Settings/Node/node.js
+++ b/js/src/views/Settings/Node/node.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container, Dropdown, LanguageSelector } from '@parity/ui';
diff --git a/js/src/views/Settings/Proxy/proxy.js b/js/src/views/Settings/Proxy/proxy.js
index 9259f4670..7bb4bb945 100644
--- a/js/src/views/Settings/Proxy/proxy.js
+++ b/js/src/views/Settings/Proxy/proxy.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container } from '@parity/ui';
diff --git a/js/src/views/Settings/Views/views.js b/js/src/views/Settings/Views/views.js
index 3fea9a9b4..b6851bf1a 100644
--- a/js/src/views/Settings/Views/views.js
+++ b/js/src/views/Settings/Views/views.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Settings/settings.js b/js/src/views/Settings/settings.js
index dc87ffe89..c40c8e8a4 100644
--- a/js/src/views/Settings/settings.js
+++ b/js/src/views/Settings/settings.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Page, Tabs } from '@parity/ui';
diff --git a/js/src/views/Signer/RequestsPage/requestsPage.js b/js/src/views/Signer/RequestsPage/requestsPage.js
index 0fd2b04f8..fe5bed8ab 100644
--- a/js/src/views/Signer/RequestsPage/requestsPage.js
+++ b/js/src/views/Signer/RequestsPage/requestsPage.js
@@ -16,7 +16,8 @@
import BigNumber from 'bignumber.js';
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Status/Debug/Toggle/toggle.js b/js/src/views/Status/Debug/Toggle/toggle.js
index 178bc2601..35ae4acd4 100644
--- a/js/src/views/Status/Debug/Toggle/toggle.js
+++ b/js/src/views/Status/Debug/Toggle/toggle.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import styles from '../debug.css';
diff --git a/js/src/views/Status/Debug/debug.js b/js/src/views/Status/Debug/debug.js
index be9577dd8..7c36de670 100644
--- a/js/src/views/Status/Debug/debug.js
+++ b/js/src/views/Status/Debug/debug.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container } from '@parity/ui';
diff --git a/js/src/views/Status/Health/health.js b/js/src/views/Status/Health/health.js
index 8ff314cf9..7c3ef864c 100644
--- a/js/src/views/Status/Health/health.js
+++ b/js/src/views/Status/Health/health.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Status/MiningSettings/miningSettings.js b/js/src/views/Status/MiningSettings/miningSettings.js
index f48d34874..0cb17e594 100644
--- a/js/src/views/Status/MiningSettings/miningSettings.js
+++ b/js/src/views/Status/MiningSettings/miningSettings.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import formatNumber from 'format-number';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { ContainerTitle, Input, TypedInput } from '@parity/ui';
diff --git a/js/src/views/Status/Node/node.js b/js/src/views/Status/Node/node.js
index 84048d175..a297e636c 100644
--- a/js/src/views/Status/Node/node.js
+++ b/js/src/views/Status/Node/node.js
@@ -16,7 +16,8 @@
import bytes from 'bytes';
import moment from 'moment';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Status/Peers/Peer/peer.js b/js/src/views/Status/Peers/Peer/peer.js
index 8f3c981c5..497cdb7c5 100644
--- a/js/src/views/Status/Peers/Peer/peer.js
+++ b/js/src/views/Status/Peers/Peer/peer.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { PropTypes } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { ScrollableText, ShortenedHash } from '@parity/ui';
diff --git a/js/src/views/Status/Peers/peers.js b/js/src/views/Status/Peers/peers.js
index abbb6e0d3..03552d4a6 100644
--- a/js/src/views/Status/Peers/peers.js
+++ b/js/src/views/Status/Peers/peers.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
diff --git a/js/src/views/Vaults/VaultAccounts/vaultAccounts.js b/js/src/views/Vaults/VaultAccounts/vaultAccounts.js
index e96519090..279749788 100644
--- a/js/src/views/Vaults/VaultAccounts/vaultAccounts.js
+++ b/js/src/views/Vaults/VaultAccounts/vaultAccounts.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Vaults/VaultCreate/vaultCreate.js b/js/src/views/Vaults/VaultCreate/vaultCreate.js
index 8b644bb91..e93342189 100644
--- a/js/src/views/Vaults/VaultCreate/vaultCreate.js
+++ b/js/src/views/Vaults/VaultCreate/vaultCreate.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Vaults/VaultLock/vaultLock.js b/js/src/views/Vaults/VaultLock/vaultLock.js
index 297a78c03..cdc1c21a4 100644
--- a/js/src/views/Vaults/VaultLock/vaultLock.js
+++ b/js/src/views/Vaults/VaultLock/vaultLock.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Vaults/VaultMeta/vaultMeta.js b/js/src/views/Vaults/VaultMeta/vaultMeta.js
index 0f3cc50be..0af817dbd 100644
--- a/js/src/views/Vaults/VaultMeta/vaultMeta.js
+++ b/js/src/views/Vaults/VaultMeta/vaultMeta.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Vaults/VaultUnlock/vaultUnlock.js b/js/src/views/Vaults/VaultUnlock/vaultUnlock.js
index ba7f51a78..b2d140038 100644
--- a/js/src/views/Vaults/VaultUnlock/vaultUnlock.js
+++ b/js/src/views/Vaults/VaultUnlock/vaultUnlock.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Vaults/vaults.js b/js/src/views/Vaults/vaults.js
index 2011c5c23..8df9a847f 100644
--- a/js/src/views/Vaults/vaults.js
+++ b/js/src/views/Vaults/vaults.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
diff --git a/js/src/views/Wallet/Confirmations/confirmations.js b/js/src/views/Wallet/Confirmations/confirmations.js
index 3e882ff69..fa3e6aafc 100644
--- a/js/src/views/Wallet/Confirmations/confirmations.js
+++ b/js/src/views/Wallet/Confirmations/confirmations.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import ReactTooltip from 'react-tooltip';
import { connect } from 'react-redux';
diff --git a/js/src/views/Wallet/Details/details.js b/js/src/views/Wallet/Details/details.js
index 4d2a790ad..063ad5c58 100644
--- a/js/src/views/Wallet/Details/details.js
+++ b/js/src/views/Wallet/Details/details.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Container, InputAddress } from '@parity/ui';
diff --git a/js/src/views/Wallet/Transactions/transactions.js b/js/src/views/Wallet/Transactions/transactions.js
index 1f885f608..f5e14bf10 100644
--- a/js/src/views/Wallet/Transactions/transactions.js
+++ b/js/src/views/Wallet/Transactions/transactions.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { bytesToHex } from '@parity/api/util/format';
diff --git a/js/src/views/Wallet/WalletSettings/walletSettings.js b/js/src/views/Wallet/WalletSettings/walletSettings.js
index 41b30f0e5..f226efbfa 100644
--- a/js/src/views/Wallet/WalletSettings/walletSettings.js
+++ b/js/src/views/Wallet/WalletSettings/walletSettings.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { observer } from 'mobx-react';
diff --git a/js/src/views/Wallet/wallet.js b/js/src/views/Wallet/wallet.js
index 4a19dd6a5..2e01894f1 100644
--- a/js/src/views/Wallet/wallet.js
+++ b/js/src/views/Wallet/wallet.js
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
diff --git a/js/src/views/Web/AddressBar/addressBar.js b/js/src/views/Web/AddressBar/addressBar.js
index 255b46972..b529d2278 100644
--- a/js/src/views/Web/AddressBar/addressBar.js
+++ b/js/src/views/Web/AddressBar/addressBar.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Button, DappUrlInput } from '@parity/ui';
import { CloseIcon, RefreshIcon, GotoIcon } from '@parity/ui/Icons';
diff --git a/js/src/views/Web/web.js b/js/src/views/Web/web.js
index 8e81b43d5..ec627b68b 100644
--- a/js/src/views/Web/web.js
+++ b/js/src/views/Web/web.js
@@ -15,7 +15,8 @@
// along with Parity. If not, see .
import { observer } from 'mobx-react';
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import AddressBar from './AddressBar';
diff --git a/js/webpack/dev.server.js b/js/webpack/dev.server.js
index 038945014..07541a879 100644
--- a/js/webpack/dev.server.js
+++ b/js/webpack/dev.server.js
@@ -73,6 +73,7 @@ app.use(webpackDevMiddleware(compiler, {
// @see https://github.com/webpack/webpack/blob/324d309107f00cfc38ec727521563d309339b2ec/lib/Stats.js#L790
// Accepted values: none, errors-only, minimal, normal, verbose
const options = WebpackStats.presetToOptions('minimal');
+
options.timings = true;
const output = data.stats.toString(options);
@@ -89,6 +90,7 @@ Shared.addProxies(app);
app.use(express.static(webpackConfig.output.path));
const server = http.createServer(app);
+
server.listen(process.env.PORT || 3000, function () {
console.log('Listening on port', server.address().port);
progressBar = new ProgressBar('[:bar] :percent :etas', { total: 50 });
diff --git a/js/webpack/shared.js b/js/webpack/shared.js
index a15560689..e9ced22e5 100644
--- a/js/webpack/shared.js
+++ b/js/webpack/shared.js
@@ -25,7 +25,19 @@ const postcssVars = require('postcss-simple-vars');
const rucksack = require('rucksack-css');
const CircularDependencyPlugin = require('circular-dependency-plugin');
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
+const PackageJson = require('../package.json');
+const UI_VERSION = PackageJson
+ .version
+ .split('.')
+ .map((part, index) => {
+ if (index !== 2) {
+ return part;
+ }
+
+ return `${parseInt(part, 10) + 1}`;
+ })
+ .join('.');
const EMBED = process.env.EMBED;
const ENV = process.env.NODE_ENV || 'development';
const isProd = ENV === 'production';
@@ -113,7 +125,8 @@ function getPlugins (_isProd = isProd) {
RPC_ADDRESS: JSON.stringify(process.env.RPC_ADDRESS),
PARITY_URL: JSON.stringify(process.env.PARITY_URL),
DAPPS_URL: JSON.stringify(process.env.DAPPS_URL),
- LOGGING: JSON.stringify(!isProd)
+ LOGGING: JSON.stringify(!isProd),
+ UI_VERSION: JSON.stringify(UI_VERSION)
}
}),
@@ -125,26 +138,28 @@ function getPlugins (_isProd = isProd) {
postcss: postcss,
babel: getBabelrc()
}
- }),
+ })
+ ]);
+ if (_isProd) {
+ plugins.push(
new webpack.optimize.OccurrenceOrderPlugin(!_isProd),
new CircularDependencyPlugin({
exclude: /node_modules/,
failOnError: true
- })
- ]);
+ }),
- if (_isProd) {
- plugins.push(new webpack.optimize.UglifyJsPlugin({
- screwIe8: true,
- compress: {
- warnings: false
- },
- output: {
- comments: false
- }
- }));
+ new webpack.optimize.UglifyJsPlugin({
+ screwIe8: true,
+ compress: {
+ warnings: false
+ },
+ output: {
+ comments: false
+ }
+ })
+ );
}
return plugins;