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' };