diff options
author | Frankie <frankie.pangilinan@consensys.net> | 2016-08-11 04:48:34 +0800 |
---|---|---|
committer | Frankie <frankie.pangilinan@consensys.net> | 2016-08-11 04:48:34 +0800 |
commit | ba1edc429b948962fe0f03ef43588f7945cea3f2 (patch) | |
tree | eda1b54a424c2fc06ef151763b5cb57d2e838116 /ui/app | |
parent | 9c6dd9ef4953f6e421feb6e6684ef43da26f6b75 (diff) | |
parent | c48b60d7a6f14d2d2348be8d9a63965ca1267433 (diff) | |
download | tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar.gz tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar.bz2 tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar.lz tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar.xz tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.tar.zst tangerine-wallet-browser-ba1edc429b948962fe0f03ef43588f7945cea3f2.zip |
Merge branch 'master' into buyForm
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/account-detail.js | 8 | ||||
-rw-r--r-- | ui/app/accounts/index.js | 3 | ||||
-rw-r--r-- | ui/app/actions.js | 2 | ||||
-rw-r--r-- | ui/app/app.js | 1 | ||||
-rw-r--r-- | ui/app/components/drop-menu-item.js | 15 | ||||
-rw-r--r-- | ui/app/components/network.js | 26 | ||||
-rw-r--r-- | ui/app/components/pending-tx-details.js | 3 | ||||
-rw-r--r-- | ui/app/components/transaction-list-item.js | 3 | ||||
-rw-r--r-- | ui/app/css/lib.css | 5 | ||||
-rw-r--r-- | ui/app/eth-store-warning.js | 89 | ||||
-rw-r--r-- | ui/app/first-time/create-vault.js | 2 | ||||
-rw-r--r-- | ui/app/info.js | 7 | ||||
-rw-r--r-- | ui/app/reducers/app.js | 18 | ||||
-rw-r--r-- | ui/app/reducers/metamask.js | 6 | ||||
-rw-r--r-- | ui/app/send.js | 2 | ||||
-rw-r--r-- | ui/app/settings.js | 1 | ||||
-rw-r--r-- | ui/app/util.js | 7 |
17 files changed, 177 insertions, 21 deletions
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js index cf65cbb7d..814d8bab0 100644 --- a/ui/app/account-detail.js +++ b/ui/app/account-detail.js @@ -172,19 +172,27 @@ AccountDetailScreen.prototype.render = function () { }), h('button', { +<<<<<<< HEAD onClick: this.buyButtonDeligator.bind(this), +======= + onClick: () => props.dispatch(actions.buyEth(selected)), +>>>>>>> master style: { marginBottom: '20px', marginRight: '8px', position: 'absolute', left: '219px', }, +<<<<<<< HEAD }, props.accountDetail.subview === 'buyForm' ? [h('i.fa.fa-arrow-left', { style: { width: '22.641px', height: '14px', }, })] : 'BUY'), +======= + }, 'BUY'), +>>>>>>> master h('button', { onClick: () => props.dispatch(actions.showSendPage()), diff --git a/ui/app/accounts/index.js b/ui/app/accounts/index.js index f7ae5c53e..6e12accc7 100644 --- a/ui/app/accounts/index.js +++ b/ui/app/accounts/index.js @@ -37,7 +37,6 @@ AccountsScreen.prototype.render = function () { var actions = { onSelect: this.onSelect.bind(this), onShowDetail: this.onShowDetail.bind(this), - revealAccount: this.onRevealAccount.bind(this), goHome: this.goHome.bind(this), } return ( @@ -88,7 +87,7 @@ AccountsScreen.prototype.render = function () { h('div.footer.hover-white.pointer', { key: 'reveal-account-bar', onClick: () => { - actions.revealAccount() + this.onRevealAccount() }, style: { display: 'flex', diff --git a/ui/app/actions.js b/ui/app/actions.js index 754ffced8..bdf100040 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -131,7 +131,6 @@ var actions = { showSubLoadingIndication: showSubLoadingIndication, HIDE_SUB_LOADING_INDICATION: 'HIDE_SUB_LOADING_INDICATION', hideSubLoadingIndication: hideSubLoadingIndication, - } module.exports = actions @@ -625,6 +624,7 @@ function buyEth (address, amount) { }) } } +<<<<<<< HEAD function buyEthSubview () { return { diff --git a/ui/app/app.js b/ui/app/app.js index b8deedc13..cc616fb7c 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -267,6 +267,7 @@ App.prototype.renderDropdown = function () { style: { position: 'absolute', right: 0, + top: '36px', }, innerStyle: { background: 'white', diff --git a/ui/app/components/drop-menu-item.js b/ui/app/components/drop-menu-item.js index f5800f799..1a0d6cbd5 100644 --- a/ui/app/components/drop-menu-item.js +++ b/ui/app/components/drop-menu-item.js @@ -32,20 +32,25 @@ DropMenuItem.prototype.render = function () { } DropMenuItem.prototype.activeNetworkRender = function () { - var activeNetwork = this.props.activeNetworkRender + let activeNetwork = this.props.activeNetworkRender + let { provider } = this.props + let providerType = provider ? provider.type : null if (activeNetwork === undefined) return switch (this.props.label) { case 'Main Ethereum Network': - if (activeNetwork === '1') return h('.check', ' ✓') + if (providerType === 'mainnet') return h('.check', '✓') + break + case 'Ethereum Classic Network': + if (providerType === 'classic') return h('.check', '✓') break case 'Morden Test Network': - if (activeNetwork === '2') return h('.check', ' ✓') + if (activeNetwork === '2') return h('.check', '✓') break case 'Localhost 8545': - if (activeNetwork === 'http://localhost:8545') return h('.check', ' ✓') + if (activeNetwork === 'http://localhost:8545') return h('.check', '✓') break default: - if (activeNetwork === 'custom') return h('.check', ' ✓') + if (activeNetwork === 'custom') return h('.check', '✓') } } diff --git a/ui/app/components/network.js b/ui/app/components/network.js index 032e71699..95901fe70 100644 --- a/ui/app/components/network.js +++ b/ui/app/components/network.js @@ -11,11 +11,18 @@ function Network () { } Network.prototype.render = function () { - const state = this.props - const networkNumber = state.network + const props = this.props + const networkNumber = props.network + let providerName + try { + providerName = props.provider.type + } catch (e) { + providerName = null + } let iconName, hoverText if (networkNumber === 'loading') { + return h('img', { title: 'Attempting to connect to blockchain.', onClick: (event) => this.props.onClick(event), @@ -25,9 +32,13 @@ Network.prototype.render = function () { }, src: 'images/loading.svg', }) - } else if (parseInt(networkNumber) === 1) { + + } else if (providerName === 'mainnet') { hoverText = 'Main Ethereum Network' iconName = 'ethereum-network' + } else if (providerName === 'classic') { + hoverText = 'Ethereum Classic Network' + iconName = 'classic-network' } else if (parseInt(networkNumber) === 2) { hoverText = 'Morden Test Network' iconName = 'morden-test-network' @@ -55,6 +66,15 @@ Network.prototype.render = function () { }}, 'Etherum Main Net'), ]) + case 'classic-network': + return h('.network-indicator', [ + h('.menu-icon.hollow-diamond'), + h('.network-name', { + style: { + color: '#039396', + }}, + 'Etherum Classic'), + ]) case 'morden-test-network': return h('.network-indicator', [ h('.menu-icon.red-dot'), diff --git a/ui/app/components/pending-tx-details.js b/ui/app/components/pending-tx-details.js index a6f72a89b..2fb0eae3f 100644 --- a/ui/app/components/pending-tx-details.js +++ b/ui/app/components/pending-tx-details.js @@ -28,7 +28,8 @@ PTXP.render = function () { var txParams = txData.txParams || {} var address = txParams.from || props.selectedAddress var identity = props.identities[address] || { address: address } - var balance = props.accounts[address].balance + var account = props.accounts[address] + var balance = account ? account.balance : '0x0' var gasCost = new BN(ethUtil.stripHexPrefix(txParams.gas || txData.estimatedGas), 16) var gasPrice = new BN(ethUtil.stripHexPrefix(txParams.gasPrice || '0x4a817c800'), 16) diff --git a/ui/app/components/transaction-list-item.js b/ui/app/components/transaction-list-item.js index 78867fca4..796ba61ae 100644 --- a/ui/app/components/transaction-list-item.js +++ b/ui/app/components/transaction-list-item.js @@ -7,6 +7,7 @@ const addressSummary = require('../util').addressSummary const explorerLink = require('../../lib/explorer-link') const CopyButton = require('./copyButton') const vreme = new (require('vreme')) +const extension = require('../../../app/scripts/lib/extension') const TransactionIcon = require('./transaction-list-item-icon') @@ -49,7 +50,7 @@ TransactionListItem.prototype.render = function () { if (!transaction.hash || !isLinkable) return var url = explorerLink(transaction.hash, parseInt(network)) - chrome.tabs.create({ url }) + extension.tabs.create({ url }) }, style: { padding: '20px 0', diff --git a/ui/app/css/lib.css b/ui/app/css/lib.css index 22b26d4f1..bcd6a4a67 100644 --- a/ui/app/css/lib.css +++ b/ui/app/css/lib.css @@ -178,6 +178,11 @@ hr.horizontal-line { background: #038789; } +.hollow-diamond { + transform: rotate(45deg); + border: 1px solid #038789; +} + .pending-dot { background: red; left: 14px; diff --git a/ui/app/eth-store-warning.js b/ui/app/eth-store-warning.js new file mode 100644 index 000000000..7fe54a309 --- /dev/null +++ b/ui/app/eth-store-warning.js @@ -0,0 +1,89 @@ +const connect = require('react-redux').connect +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits +const actions = require('./actions') + +module.exports = connect(mapStateToProps)(EthStoreWarning) + +inherits(EthStoreWarning, Component) +function EthStoreWarning () { + Component.call(this) +} + +function mapStateToProps (state) { + return { + selectedAccount: state.metamask.selectedAccount, + } +} + +EthStoreWarning.prototype.render = function () { + + return ( + + h('.flex-column', { + key: 'ethWarning', + style: { + paddingTop: '25px', + marginRight: '30px', + marginLeft: '30px', + alignItems: 'center', + }, + }, [ + h('.warning', { + style: { + margin: '10px 10px 10px 10px', + }, + }, + `MetaMask is currently in beta - + exercise caution while handling + and storing your ether. + `), + + h('i.fa.fa-exclamation-triangle.fa-4', { + style: { + fontSize: '152px', + color: '#AEAEAE', + textAlign: 'center', + }, + }), + + h('.flex-row', { + style: { + marginTop: '25px', + marginBottom: '10px', + }, + }, [ + h('input', { + type: 'checkbox', + onChange: this.toggleShowWarning.bind(this), + }), + h('.warning', { + style: { + fontSize: '11px', + }, + + }, 'Don\'t show me this message again'), + ]), + h('.flex-row', { + style: { + width: '100%', + justifyContent: 'space-around', + }, + }, [ + h('button', { + onClick: this.toAccounts.bind(this), + }, + 'Continue to MetaMask'), + ]), + ]) + ) +} + +EthStoreWarning.prototype.toggleShowWarning = function () { + this.props.dispatch(actions.agreeToEthWarning()) +} + +EthStoreWarning.prototype.toAccounts = function () { + this.props.dispatch(actions.showAccountDetail(this.props.account)) +} diff --git a/ui/app/first-time/create-vault.js b/ui/app/first-time/create-vault.js index 3dfbf0dbd..33ae62179 100644 --- a/ui/app/first-time/create-vault.js +++ b/ui/app/first-time/create-vault.js @@ -120,7 +120,7 @@ CreateVaultScreen.prototype.createNewVault = function () { return } if (password !== passwordConfirm) { - this.warning = 'passwords dont match' + this.warning = 'passwords don\'t match' this.props.dispatch(actions.displayWarning(this.warning)) return } diff --git a/ui/app/info.js b/ui/app/info.js index d97998fd7..4e540bd03 100644 --- a/ui/app/info.js +++ b/ui/app/info.js @@ -3,6 +3,7 @@ const Component = require('react').Component const h = require('react-hyperscript') const connect = require('react-redux').connect const actions = require('./actions') +const extension = require('../../app/scripts/lib/extension') module.exports = connect(mapStateToProps)(InfoScreen) @@ -19,7 +20,7 @@ InfoScreen.prototype.render = function () { var state = this.props var manifest try { - manifest = chrome.runtime.getManifest() + manifest = extension.runtime.getManifest() } catch (e) { manifest = { version: '2.0.0' } } @@ -105,7 +106,7 @@ InfoScreen.prototype.render = function () { h('a.info', { target: '_blank', style: { width: '85vw' }, - onClick () { chrome.tabs.create({url: 'mailto:help@metamask.io?subject=Feedback'}) }, + onClick () { extension.tabs.create({url: 'mailto:help@metamask.io?subject=Feedback'}) }, }, 'Email us any questions or comments!'), ]), @@ -124,5 +125,5 @@ InfoScreen.prototype.render = function () { } InfoScreen.prototype.navigateTo = function (url) { - chrome.tabs.create({ url }) + extension.tabs.create({ url }) } diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js index 06afd0ae1..a9d6e4ff0 100644 --- a/ui/app/reducers/app.js +++ b/ui/app/reducers/app.js @@ -28,10 +28,13 @@ function reduceApp (state, action) { name: 'createVaultComplete', seedWords, } + var ethStoreWarning = { + name: 'EthStoreWarning', + } var appState = extend({ menuOpen: false, - currentView: seedWords ? seedConfView : defaultView, + currentView: seedWords ? seedConfView : !state.metamask.isEthConfirmed ? ethStoreWarning : defaultView, accountDetail: { subview: 'transactions', }, @@ -366,6 +369,17 @@ function reduceApp (state, action) { }, }) + case actions.SHOW_ETH_WARNING: + return extend(appState, { + transForward: true, + currentView: { + name: 'accountDetail', + context: appState.currentView.context, + }, + accountDetail: { + subview: 'buy-eth-warning', + }, + }) default: return appState } @@ -390,3 +404,5 @@ function indexForPending (state, txId) { }) return idx } + + diff --git a/ui/app/reducers/metamask.js b/ui/app/reducers/metamask.js index f3ef8eb11..4eef20f56 100644 --- a/ui/app/reducers/metamask.js +++ b/ui/app/reducers/metamask.js @@ -10,6 +10,7 @@ function reduceMetamask (state, action) { var metamaskState = extend({ isInitialized: false, isUnlocked: false, + isEthConfirmed: false, currentDomain: 'example.com', rpcTarget: 'https://rawtestrpc.metamask.io/', identities: {}, @@ -31,6 +32,11 @@ function reduceMetamask (state, action) { isConfirmed: true, }) + case actions.AGREE_TO_ETH_WARNING: + return extend(metamaskState, { + isEthConfirmed: !metamaskState.isEthConfirmed, + }) + case actions.UNLOCK_METAMASK: return extend(metamaskState, { isUnlocked: true, diff --git a/ui/app/send.js b/ui/app/send.js index 540d85382..06ea199f4 100644 --- a/ui/app/send.js +++ b/ui/app/send.js @@ -173,7 +173,7 @@ SendTransactionScreen.prototype.render = function () { marginBottom: 16, }, }, [ - 'Tranasactional Data (optional)', + 'Transactional Data (optional)', ]), // 'data' field diff --git a/ui/app/settings.js b/ui/app/settings.js index e56f4ee63..454cc95e0 100644 --- a/ui/app/settings.js +++ b/ui/app/settings.js @@ -32,7 +32,6 @@ AppSettingsPage.prototype.render = function () { htmlFor: 'settings-rpc-endpoint', }, 'RPC Endpoint:'), h('input', { - // value: '//testrpc.metamask.io', type: 'url', id: 'settings-rpc-endpoint', onKeyPress: this.onKeyPress.bind(this), diff --git a/ui/app/util.js b/ui/app/util.js index a08006077..04ebcecdb 100644 --- a/ui/app/util.js +++ b/ui/app/util.js @@ -123,7 +123,12 @@ function generateBalanceObject (formattedBalance, decimalsToKeep = 1) { var shortBalance = shortenBalance(balance, decimalsToKeep) if (beforeDecimal === '0' && afterDecimal.substr(0, 5) === '00000') { - balance = '<1.0e-5' + // eslint-disable-next-line eqeqeq + if (afterDecimal == 0) { + balance = '0' + } else { + balance = '<1.0e-5' + } } else if (beforeDecimal !== '0') { balance = `${beforeDecimal}.${afterDecimal.slice(0, decimalsToKeep)}` } |