diff --git a/js/package.json b/js/package.json
index 072c6b804..e798e3334 100644
--- a/js/package.json
+++ b/js/package.json
@@ -161,61 +161,33 @@
"dependencies": {
"@parity/abi": "file:src/abi",
"@parity/api": "file:src/api",
+ "@parity/dapps": "file:src/dapps",
"@parity/jsonrpc": "file:src/jsonrpc",
"@parity/shared": "file:src/shared",
+ "@parity/shell": "file:src/shell",
"@parity/ui": "file:src/ui",
+ "@parity/views": "file:src/views",
"@parity/wordlist": "1.0.1",
- "base32.js": "0.1.0",
- "bignumber.js": "3.0.1",
- "bytes": "2.4.0",
- "date-difference": "1.0.0",
- "debounce": "1.0.0",
- "es6-error": "4.0.0",
"es6-promise": "4.0.5",
- "ethereumjs-tx": "1.2.5",
- "eventemitter3": "2.0.2",
"flat": "2.0.1",
- "format-json": "1.0.3",
- "format-number": "2.0.1",
"isomorphic-fetch": "2.2.1",
- "js-sha3": "0.5.5",
"lodash": "4.17.2",
"loglevel": "1.4.1",
- "marked": "0.3.6",
- "material-ui": "0.16.5",
- "mobx": "2.6.4",
- "mobx-react": "4.0.3",
"moment": "2.17.0",
"napa": "2.3.0",
- "phoneformat.js": "1.0.3",
"promise-worker": "1.1.1",
- "push.js": "0.0.11",
- "qs": "6.3.0",
"react": "15.4.2",
- "react-addons-css-transition-group": "15.4.2",
"react-dom": "15.4.2",
- "react-element-to-jsx-string": "6.0.0",
"react-intl": "2.1.5",
- "react-markdown": "2.4.4",
- "react-redux": "4.4.6",
"react-router": "3.0.0",
"react-router-redux": "4.0.7",
"react-tap-event-plugin": "2.0.1",
"react-tooltip": "3.2.2",
- "redux": "3.6.0",
- "redux-actions": "1.1.0",
- "redux-thunk": "2.1.0",
- "rlp": "2.0.0",
- "scryptsy": "2.0.0",
- "solc": "ngotchac/solc-js",
"store": "1.3.20",
"sw-toolbox": "^3.6.0",
"u2f-api": "0.0.9",
"u2f-api-polyfill": "0.4.3",
- "useragent.js": "0.5.6",
"utf8": "2.1.2",
- "valid-url": "1.0.9",
- "validator": "6.2.0",
"web3": "0.17.0-beta",
"whatwg-fetch": "2.0.1",
"worker-loader": "^0.8.0",
diff --git a/js/src/api/package.json b/js/src/api/package.json
index 0856c9170..9efc70e16 100644
--- a/js/src/api/package.json
+++ b/js/src/api/package.json
@@ -30,6 +30,7 @@
"@parity/jsonrpc": "file:../jsonrpc",
"bignumber.js": "3.0.1",
"blockies": "0.0.2",
+ "es6-error": "4.0.0",
"ethereumjs-tx": "1.2.5",
"eventemitter3": "2.0.2",
"js-sha3": "0.5.5",
diff --git a/js/src/dapps/README.md b/js/src/dapps/README.md
new file mode 100644
index 000000000..f29e29f3a
--- /dev/null
+++ b/js/src/dapps/README.md
@@ -0,0 +1 @@
+# Parity builtin dapps
diff --git a/js/src/dapps/package.json b/js/src/dapps/package.json
index 410bb2207..767f3ba5f 100644
--- a/js/src/dapps/package.json
+++ b/js/src/dapps/package.json
@@ -14,6 +14,9 @@
"keywords": [],
"scripts": {},
"devDependencies": {},
- "dependencies": {},
+ "dependencies": {
+ "material-ui": "0.16.5",
+ "validator": "6.2.0"
+ },
"peerDependencies": {}
}
diff --git a/js/src/dapps/tokenreg/Inputs/validation.js b/js/src/dapps/tokenreg/Inputs/validation.js
index 4b2f1df1a..73b9ab0ec 100644
--- a/js/src/dapps/tokenreg/Inputs/validation.js
+++ b/js/src/dapps/tokenreg/Inputs/validation.js
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see .
-import isURL from 'validator/lib/isURL';
+import validator from 'validator';
import { api } from '../parity';
@@ -211,7 +211,7 @@ const validateHex = (string) => {
};
const validateURL = (string) => {
- if (!isURL(string.toString())) {
+ if (!validator.isURL(string.toString())) {
return {
error: ERRORS.invalidURL,
valid: false
diff --git a/js/src/shared/README.md b/js/src/shared/README.md
new file mode 100644
index 000000000..97bec5614
--- /dev/null
+++ b/js/src/shared/README.md
@@ -0,0 +1 @@
+# Parity shared non-ui components
diff --git a/js/src/shared/package.json b/js/src/shared/package.json
index e2637e95c..e13a8d38f 100644
--- a/js/src/shared/package.json
+++ b/js/src/shared/package.json
@@ -14,6 +14,17 @@
"keywords": [],
"scripts": {},
"devDependencies": {},
- "dependencies": {},
+ "dependencies": {
+ "mobx": "2.6.4",
+ "mobx-react": "4.0.3",
+ "push.js": "0.0.11",
+ "react-redux": "4.4.6",
+ "redux": "3.6.0",
+ "redux-actions": "1.1.0",
+ "redux-thunk": "2.1.0",
+ "scryptsy": "2.0.0",
+ "solc": "ngotchac/solc-js",
+ "yargs": "4.7.1"
+ },
"peerDependencies": {}
}
diff --git a/js/src/shell/README.md b/js/src/shell/README.md
new file mode 100644
index 000000000..fea47c85d
--- /dev/null
+++ b/js/src/shell/README.md
@@ -0,0 +1 @@
+# Parity shell & dapp launcher
diff --git a/js/src/shell/package.json b/js/src/shell/package.json
index 0a110d81c..3da9b0cb5 100644
--- a/js/src/shell/package.json
+++ b/js/src/shell/package.json
@@ -14,6 +14,9 @@
"keywords": [],
"scripts": {},
"devDependencies": {},
- "dependencies": {},
+ "dependencies": {
+ "qs": "6.3.0",
+ "useragent.js": "0.5.6"
+ },
"peerDependencies": {}
}
diff --git a/js/src/ui/Actionbar/Export/export.js b/js/src/ui/Actionbar/Export/export.js
index c5fd2f18a..068d1476c 100644
--- a/js/src/ui/Actionbar/Export/export.js
+++ b/js/src/ui/Actionbar/Export/export.js
@@ -19,10 +19,10 @@ import { FormattedMessage } from 'react-intl';
import FileSaver from 'file-saver';
-import Button from '../../Button';
-import { FileDownloadIcon } from '../../Icons';
+import Button from '~/ui/Button';
+import { FileDownloadIcon } from '~/ui/Icons';
-class ActionbarExport extends Component {
+export default class ActionbarExport extends Component {
static propTypes = {
content: PropTypes.oneOfType([
PropTypes.string,
@@ -58,5 +58,3 @@ class ActionbarExport extends Component {
FileSaver.saveAs(blob, `${filename}.json`);
}
}
-
-export default ActionbarExport;
diff --git a/js/src/ui/Actionbar/Import/import.js b/js/src/ui/Actionbar/Import/import.js
index a10486bf3..0598b01a2 100644
--- a/js/src/ui/Actionbar/Import/import.js
+++ b/js/src/ui/Actionbar/Import/import.js
@@ -19,10 +19,10 @@ import { FormattedMessage } from 'react-intl';
import { nodeOrStringProptype } from '@parity/shared/util/proptypes';
-import Button from '../../Button';
-import FileSelect from '../../Form/FileSelect';
-import { CancelIcon, DoneIcon, FileUploadIcon } from '../../Icons';
-import Portal from '../../Portal';
+import Button from '~/ui/Button';
+import FileSelect from '~/ui/Form/FileSelect';
+import { CancelIcon, DoneIcon, FileUploadIcon } from '~/ui/Icons';
+import Portal from '~/ui/Portal';
import styles from './import.css';
diff --git a/js/src/ui/Actionbar/Search/search.js b/js/src/ui/Actionbar/Search/search.js
index 9c0a4ca76..02b0481f9 100644
--- a/js/src/ui/Actionbar/Search/search.js
+++ b/js/src/ui/Actionbar/Search/search.js
@@ -17,9 +17,9 @@
import React, { Component, PropTypes } from 'react';
import { FormattedMessage } from 'react-intl';
-import Button from '../../Button';
-import InputChip from '../../Form/InputChip';
-import { SearchIcon } from '../../Icons';
+import Button from '~/ui/Button';
+import InputChip from '~/ui/Form/InputChip';
+import { SearchIcon } from '~/ui/Icons';
import styles from './search.css';
diff --git a/js/src/ui/Actionbar/Sort/sort.js b/js/src/ui/Actionbar/Sort/sort.js
index d5da0f3fb..9cfc57c12 100644
--- a/js/src/ui/Actionbar/Sort/sort.js
+++ b/js/src/ui/Actionbar/Sort/sort.js
@@ -21,8 +21,8 @@ import { observer } from 'mobx-react';
import IconMenu from 'material-ui/IconMenu';
import MenuItem from 'material-ui/MenuItem';
-import Button from '../../Button';
-import { SortIcon } from '../../Icons';
+import Button from '~/ui/Button';
+import { SortIcon } from '~/ui/Icons';
import SortStore from './sortStore';
import styles from './sort.css';
diff --git a/js/src/ui/Badge/badge.css b/js/src/ui/Badge/badge.css
index ec9d30c47..fcc63afe9 100644
--- a/js/src/ui/Badge/badge.css
+++ b/js/src/ui/Badge/badge.css
@@ -14,12 +14,13 @@
/* You should have received a copy of the GNU General Public License
/* along with Parity. If not, see .
*/
+
.bubble {
border-radius: 50%;
- padding: 3px 5px;
color: white;
font-size: 0.7em;
line-height: 1em;
+ padding: 3px 5px;
}
.default {
diff --git a/js/src/ui/Badge/badge.js b/js/src/ui/Badge/badge.js
index c3746272a..4e0777228 100644
--- a/js/src/ui/Badge/badge.js
+++ b/js/src/ui/Badge/badge.js
@@ -18,9 +18,9 @@ import React, { PropTypes } from 'react';
import styles from './badge.css';
-export default function Badge ({ className, color, value }) {
+export default function Badge ({ className, color = 'default', value }) {
return (
-
+
{ value }
);
diff --git a/js/src/ui/Balance/balance.css b/js/src/ui/Balance/balance.css
index a9cf6c6a4..43387a53a 100644
--- a/js/src/ui/Balance/balance.css
+++ b/js/src/ui/Balance/balance.css
@@ -25,7 +25,7 @@ $textColor: white;
vertical-align: top;
&:not(.full) {
- height: 2.5em;
+ height: 40px;
overflow: hidden;
}
}
diff --git a/js/src/ui/CopyToClipboard/copyToClipboard.css b/js/src/ui/CopyToClipboard/copyToClipboard.css
index 4e2bb8cc4..4051d8593 100644
--- a/js/src/ui/CopyToClipboard/copyToClipboard.css
+++ b/js/src/ui/CopyToClipboard/copyToClipboard.css
@@ -15,7 +15,8 @@
/* along with Parity. If not, see
.
*/
-.wrapper {
+.icon {
+ cursor: pointer;
display: inline-block;
}
diff --git a/js/src/ui/CopyToClipboard/copyToClipboard.js b/js/src/ui/CopyToClipboard/copyToClipboard.js
index cc18d1556..63eafffd7 100644
--- a/js/src/ui/CopyToClipboard/copyToClipboard.js
+++ b/js/src/ui/CopyToClipboard/copyToClipboard.js
@@ -14,7 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see
.
-import { IconButton } from 'material-ui';
import React, { Component, PropTypes } from 'react';
import { FormattedMessage } from 'react-intl';
import Clipboard from 'react-copy-to-clipboard';
@@ -23,13 +22,10 @@ import { bindActionCreators } from 'redux';
import { showSnackbar } from '@parity/shared/redux/providers/snackbarActions';
-import { CopyIcon } from '../Icons';
-import Theme from '../Theme';
+import { CopyIcon } from '~/ui/Icons';
import styles from './copyToClipboard.css';
-const { textColor, disabledTextColor } = Theme.flatButton;
-
class CopyToClipboard extends Component {
static propTypes = {
showSnackbar: PropTypes.func.isRequired,
@@ -62,7 +58,6 @@ class CopyToClipboard extends Component {
render () {
const { data, size } = this.props;
- const { copied } = this.state;
return (
-
-
-
+
);
diff --git a/js/src/ui/Editor/editor.js b/js/src/ui/Editor/editor.js
index dd87aaa3d..d5811e627 100644
--- a/js/src/ui/Editor/editor.js
+++ b/js/src/ui/Editor/editor.js
@@ -14,14 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see
.
-import React, { PropTypes, Component } from 'react';
-
import 'brace';
+import 'brace/theme/solarized_dark';
+import 'brace/mode/json';
+
+import React, { PropTypes, Component } from 'react';
import AceEditor from 'react-ace';
import { noop } from 'lodash';
-import 'brace/theme/solarized_dark';
-import 'brace/mode/json';
import './mode-solidity';
export default class Editor extends Component {
diff --git a/js/src/ui/Errors/errors.js b/js/src/ui/Errors/errors.js
index 59ce74722..3f0a59157 100644
--- a/js/src/ui/Errors/errors.js
+++ b/js/src/ui/Errors/errors.js
@@ -18,6 +18,7 @@ import React, { Component, PropTypes } from 'react';
import { FormattedMessage } from 'react-intl';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
+
import { Snackbar } from '~/ui/Snackbar';
import { closeErrors } from './actions';
diff --git a/js/src/ui/Icons/index.js b/js/src/ui/Icons/index.js
index 0d05f0ce6..35f98605c 100644
--- a/js/src/ui/Icons/index.js
+++ b/js/src/ui/Icons/index.js
@@ -17,62 +17,62 @@
import React from 'react';
import { Icon } from 'semantic-ui-react';
-export const AccountsIcon = () =>
;
-export const AddIcon = () =>
;
-export const AddressIcon = () =>
;
-export const AppsIcon = () =>
;
-export const AttachFileIcon = () =>
;
-export const BackgroundIcon = () =>
;
-export const CancelIcon = () =>
;
-export const CheckIcon = () =>
;
-export const CloseIcon = () =>
;
-export const CompareIcon = () =>
;
-export const ComputerIcon = () =>
;
-export const ContractIcon = () =>
;
-export const CopyIcon = () =>
;
-export const DashboardIcon = () =>
;
+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 CloseIcon = (props) =>
;
+export const CompareIcon = (props) =>
;
+export const ComputerIcon = (props) =>
;
+export const ContractIcon = (props) =>
;
+export const CopyIcon = (props) =>
;
+export const DashboardIcon = (props) =>
;
export const DoneIcon = CheckIcon;
-export const DeleteIcon = () =>
;
-export const DevelopIcon = () =>
;
-export const DialIcon = () =>
;
-export const EditIcon = () =>
;
-export const ErrorIcon = () =>
;
-export const EthernetIcon = () =>
;
-export const FileIcon = () =>
;
-export const FileDownloadIcon = () =>
;
-export const FileUploadIcon = () =>
;
-export const FingerprintIcon = () =>
;
-export const GasIcon = () =>
;
-export const GotoIcon = () =>
;
-export const InfoIcon = () =>
;
-export const KeyIcon = () =>
;
-export const KeyboardIcon = () =>
;
-export const LinkIcon = () =>
;
-export const ListIcon = () =>
;
-export const LockedIcon = () =>
;
-export const MembershipIcon = () =>
;
-export const MoveIcon = () =>
;
-export const NextIcon = () =>
;
-export const PauseIcon = () =>
;
-export const PlayIcon = () =>
;
-export const PrevIcon = () =>
;
-export const PrintIcon = () =>
;
-export const QrIcon = () =>
;
-export const RefreshIcon = () =>
;
-export const RemoveIcon = () =>
;
-export const ReorderIcon = () =>
;
-export const ReplayIcon = () =>
;
-export const SaveIcon = () =>
;
-export const SearchIcon = () =>
;
-export const SendIcon = () =>
;
-export const SettingsIcon = () =>
;
-export const SnoozeIcon = () =>
;
-export const SortIcon = () =>
;
-export const StarIcon = () =>
;
-export const StatusIcon = () =>
;
-export const UnlockedIcon = () =>
;
-export const UpdateIcon = () =>
;
-export const UpdateWaitIcon = () =>
;
-export const VisibleIcon = () =>
;
-export const VerifyIcon = () =>
;
-export const VpnIcon = () =>
;
+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 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) =>
;
diff --git a/js/src/ui/IdentityName/identityName.js b/js/src/ui/IdentityName/identityName.js
index 92997351a..12a864f29 100644
--- a/js/src/ui/IdentityName/identityName.js
+++ b/js/src/ui/IdentityName/identityName.js
@@ -20,7 +20,7 @@ import { connect } from 'react-redux';
import { isNullAddress } from '@parity/shared/util/validation';
-import ShortenedHash from '../ShortenedHash';
+import ShortenedHash from '~/ui/ShortenedHash';
const defaultName = (
.
require('babel-register')({
- ignore: /node_modules\/(?!@parity\/(abi|api|jsonrpc|shared|ui))/
+ ignore: /node_modules\/(?!@parity\/(abi|api|dapps|jsonrpc|shared|shell|views|ui))/
});
diff --git a/js/webpack/rules/parity.js b/js/webpack/rules/parity.js
index 7686a06c8..6b2abd45d 100644
--- a/js/webpack/rules/parity.js
+++ b/js/webpack/rules/parity.js
@@ -16,6 +16,6 @@
module.exports = {
test: /\.js$/,
- include: /node_modules\/@parity\/(abi|api|jsonrpc|shared|ui|wordlist)/,
+ include: /node_modules\/@parity\/(abi|api|dapps|jsonrpc|shared|shell|ui|views|wordlist)/,
use: 'babel-loader'
};