1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Change buy forms so that they are their own view and add Qr-code

This commit is contained in:
Frankie 2016-08-12 15:41:59 -07:00
parent 2fc26fb264
commit b4c9a52259
9 changed files with 256 additions and 184 deletions

View File

@ -172,7 +172,7 @@ AccountDetailScreen.prototype.render = function () {
}), }),
h('button', { h('button', {
onClick: this.buyButtonDeligator.bind(this), onClick: () => props.dispatch(actions.buyEthView(selected)),
style: { style: {
marginBottom: '20px', marginBottom: '20px',
marginRight: '8px', marginRight: '8px',
@ -264,6 +264,6 @@ AccountDetailScreen.prototype.buyButtonDeligator = function () {
if (this.props.accountDetail.subview === 'buyForm') { if (this.props.accountDetail.subview === 'buyForm') {
props.dispatch(actions.backToAccountDetail(props.address)) props.dispatch(actions.backToAccountDetail(props.address))
} else { } else {
props.dispatch(actions.buyEthSubview()) props.dispatch(actions.buyEthView())
} }
} }

View File

@ -113,8 +113,8 @@ var actions = {
// buy Eth with coinbase // buy Eth with coinbase
BUY_ETH: 'BUY_ETH', BUY_ETH: 'BUY_ETH',
buyEth: buyEth, buyEth: buyEth,
buyEthSubview: buyEthSubview, buyEthView: buyEthView,
BUY_ETH_SUBVIEW: 'BUY_ETH_SUBVIEW', BUY_ETH_VIEW: 'BUY_ETH_VIEW',
UPDATE_COINBASE_AMOUNT: 'UPDATE_COIBASE_AMOUNT', UPDATE_COINBASE_AMOUNT: 'UPDATE_COIBASE_AMOUNT',
updateCoinBaseAmount: updateCoinBaseAmount, updateCoinBaseAmount: updateCoinBaseAmount,
UPDATE_BUY_ADDRESS: 'UPDATE_BUY_ADDRESS', UPDATE_BUY_ADDRESS: 'UPDATE_BUY_ADDRESS',
@ -125,12 +125,14 @@ var actions = {
shapeShiftSubview: shapeShiftSubview, shapeShiftSubview: shapeShiftSubview,
PAIR_UPDATE: 'PAIR_UPDATE', PAIR_UPDATE: 'PAIR_UPDATE',
pairUpdate: pairUpdate, pairUpdate: pairUpdate,
COIN_SHIFT_REQUEST: 'COIN_SHIFT_REQUEST',
coinShiftRquest: coinShiftRquest, coinShiftRquest: coinShiftRquest,
SHOW_SUB_LOADING_INDICATION: 'SHOW_SUB_LOADING_INDICATION', SHOW_SUB_LOADING_INDICATION: 'SHOW_SUB_LOADING_INDICATION',
showSubLoadingIndication: showSubLoadingIndication, showSubLoadingIndication: showSubLoadingIndication,
HIDE_SUB_LOADING_INDICATION: 'HIDE_SUB_LOADING_INDICATION', HIDE_SUB_LOADING_INDICATION: 'HIDE_SUB_LOADING_INDICATION',
hideSubLoadingIndication: hideSubLoadingIndication, hideSubLoadingIndication: hideSubLoadingIndication,
// QR STUFF:
SHOW_QR: 'SHOW_QR',
getQr: getQr,
} }
module.exports = actions module.exports = actions
@ -625,9 +627,10 @@ function buyEth (address, amount) {
} }
} }
function buyEthSubview () { function buyEthView (address) {
return { return {
type: actions.BUY_ETH_SUBVIEW, type: actions.BUY_ETH_VIEW,
value: address,
} }
} }
@ -691,19 +694,32 @@ function shapeShiftSubview (network) {
function coinShiftRquest (data) { function coinShiftRquest (data) {
return (dispatch) => { return (dispatch) => {
dispatch(actions.showSubLoadingIndication()) dispatch(actions.showLoadingIndication())
shapeShiftRequest('shift', { method: 'POST', data}, (response) => { shapeShiftRequest('shift', { method: 'POST', data}, (response) => {
dispatch(actions.hideSubLoadingIndication()) if (response.error) return dispatch(actions.showWarning(response.error))
var message = `Deposit your ${response.depositType} to the address bellow:`
dispatch(actions.getQr(response.deposit, '125x125', message))
})
}
}
function getQr (data, size, message) {
return (dispatch) => {
qrRequest(data, size, (response) => {
dispatch(actions.hideLoadingIndication())
if (response.error) return dispatch(actions.showWarning(response.error)) if (response.error) return dispatch(actions.showWarning(response.error))
dispatch({ dispatch({
type: actions.COIN_SHIFT_REQUEST, type: actions.SHOW_QR,
value: { value: {
response: response, qr: response,
message: message,
data: data,
}, },
}) })
}) })
} }
} }
function shapeShiftRequest (query, options, cb) { function shapeShiftRequest (query, options, cb) {
var queryResponse, method var queryResponse, method
!options ? options = {} : null !options ? options = {} : null
@ -727,3 +743,15 @@ function shapeShiftRequest (query, options, cb) {
return shapShiftReq.send() return shapShiftReq.send()
} }
} }
function qrRequest (data, size, cb) {
var requestListner = function (request) {
cb ? cb(this.responseText) : null
return this.responseText
}
var qrReq = new XMLHttpRequest()
qrReq.addEventListener('load', requestListner)
qrReq.open('GET', `https://api.qrserver.com/v1/create-qr-code/?size=${size}&format=svg&data=${data}`, true)
qrReq.send()
}

View File

@ -28,7 +28,7 @@ const DropMenuItem = require('./components/drop-menu-item')
const NetworkIndicator = require('./components/network') const NetworkIndicator = require('./components/network')
const Tooltip = require('./components/tooltip') const Tooltip = require('./components/tooltip')
const EthStoreWarning = require('./eth-store-warning') const EthStoreWarning = require('./eth-store-warning')
const BuyView = require('./components/buy-button-subview')
module.exports = connect(mapStateToProps)(App) module.exports = connect(mapStateToProps)(App)
inherits(App, Component) inherits(App, Component)
@ -366,6 +366,8 @@ App.prototype.renderPrimary = function () {
case 'createVault': case 'createVault':
return h(CreateVaultScreen, {key: 'createVault'}) return h(CreateVaultScreen, {key: 'createVault'})
case 'buyEth':
return h(BuyView, {key: 'buyEthView'})
default: default:
return h(AccountDetailScreen, {key: 'account-detail'}) return h(AccountDetailScreen, {key: 'account-detail'})

View File

@ -5,6 +5,7 @@ const connect = require('react-redux').connect
const actions = require('../actions') const actions = require('../actions')
const CoinbaseForm = require('./coinbase-form') const CoinbaseForm = require('./coinbase-form')
const ShapeshiftForm = require('./shapeshift-form') const ShapeshiftForm = require('./shapeshift-form')
const extension = require('../../../app/scripts/lib/extension')
module.exports = connect(mapStateToProps)(BuyButtonSubview) module.exports = connect(mapStateToProps)(BuyButtonSubview)
@ -12,6 +13,7 @@ function mapStateToProps (state) {
return { return {
selectedAccount: state.selectedAccount, selectedAccount: state.selectedAccount,
warning: state.appState.warning, warning: state.appState.warning,
buyView: state.appState.buyView,
network: state.metamask.network, network: state.metamask.network,
provider: state.metamask.provider, provider: state.metamask.provider,
} }
@ -24,10 +26,26 @@ function BuyButtonSubview () {
BuyButtonSubview.prototype.render = function () { BuyButtonSubview.prototype.render = function () {
const props = this.props const props = this.props
const currentForm = props.accountDetail.formView const currentForm = props.buyView.formView
return ( return (
h('span', {key: 'buyForm'}, [ h('.buy-eth-section', [
// back button
h('.flex-row', {
style: {
alignItems: 'center',
justifyContent: 'center',
},
}, [
h('i.fa.fa-arrow-left.fa-lg.cursor-pointer.color-orange', {
onClick: () => props.dispatch(actions.backToAccountDetail(props.selectedAccount)),
style: {
position: 'absolute',
left: '10px',
},
}),
h('h2.page-subtitle', 'Buy Eth'),
]),
h('h3.flex-row.text-transform-uppercase', { h('h3.flex-row.text-transform-uppercase', {
style: { style: {
background: '#EBEBEB', background: '#EBEBEB',
@ -39,9 +57,31 @@ BuyButtonSubview.prototype.render = function () {
h(currentForm.coinbase ? '.activeForm' : '.inactiveForm', { h(currentForm.coinbase ? '.activeForm' : '.inactiveForm', {
onClick: () => props.dispatch(actions.coinBaseSubview()), onClick: () => props.dispatch(actions.coinBaseSubview()),
}, 'Coinbase'), }, 'Coinbase'),
h('a', {
onClick: (event) => this.navigateTo('https://github.com/MetaMask/faq/blob/master/COINBASE.md'),
}, [
h('i.fa.fa-question-circle', {
style: {
position: 'relative',
right: '33px',
},
}),
]),
h(currentForm.shapeshift ? '.activeForm' : '.inactiveForm', { h(currentForm.shapeshift ? '.activeForm' : '.inactiveForm', {
onClick: () => props.dispatch(actions.shapeShiftSubview(props.provider.type)), onClick: () => props.dispatch(actions.shapeShiftSubview(props.provider.type)),
}, 'Shapeshift'), }, 'Shapeshift'),
h('a', {
href: 'https://github.com/MetaMask/faq/blob/master/COINBASE.md',
onClick: (event) => this.navigateTo('https://info.shapeshift.io/about'),
}, [
h('i.fa.fa-question-circle', {
style: {
position: 'relative',
right: '28px',
},
}),
]),
]), ]),
this.formVersionSubview(), this.formVersionSubview(),
]) ])
@ -50,9 +90,9 @@ BuyButtonSubview.prototype.render = function () {
BuyButtonSubview.prototype.formVersionSubview = function () { BuyButtonSubview.prototype.formVersionSubview = function () {
if (this.props.network === '1') { if (this.props.network === '1') {
if (this.props.accountDetail.formView.coinbase) { if (this.props.buyView.formView.coinbase) {
return h(CoinbaseForm, this.props) return h(CoinbaseForm, this.props)
} else if (this.props.accountDetail.formView.shapeshift) { } else if (this.props.buyView.formView.shapeshift) {
return h(ShapeshiftForm, this.props) return h(ShapeshiftForm, this.props)
} }
} else { } else {
@ -72,3 +112,6 @@ BuyButtonSubview.prototype.formVersionSubview = function () {
} }
} }
BuyButtonSubview.prototype.navigateTo = function (url) {
extension.tabs.create({ url })
}

View File

@ -22,12 +22,13 @@ function CoinbaseForm() {
CoinbaseForm.prototype.render = function () { CoinbaseForm.prototype.render = function () {
var props = this.props var props = this.props
var amount = props.accountDetail.amount var amount = props.buyView.amount
var address = props.accountDetail.buyAddress var address = props.buyView.buyAddress
return h('.flex-column', { return h('.flex-column', {
style: { style: {
margin: '10px', // margin: '10px',
padding: '25px',
}, },
}, [ }, [
h('.flex-column', { h('.flex-column', {
@ -35,35 +36,10 @@ CoinbaseForm.prototype.render = function () {
alignItems: 'flex-start', alignItems: 'flex-start',
}, },
}, [ }, [
h('.flex-column', [ h('.flex-row', [
h('div', 'Address:'), h('div', 'Address:'),
h('.input-container', { h('.ellip-address', address),
style: {},
}, [
h('input.buy-inputs', {
type: 'text',
style: {
boxSizing: 'border-box',
width: '317px',
height: '20px',
padding: ' 12px 0px 12px 1px ',
},
defaultValue: address,
onChange: this.handleAddress.bind(this),
}),
h('i.fa.fa-pencil-square-o.edit-text', {
style: {
fontSize: '12px',
color: '#F7861C',
position: 'relative',
bottom: '8px',
right: '11px',
},
}),
]),
]), ]),
h('.flex-row', [ h('.flex-row', [
h('div', 'Amount: $'), h('div', 'Amount: $'),
h('.input-container', [ h('.input-container', [
@ -119,7 +95,7 @@ CoinbaseForm.prototype.render = function () {
}, 'Continue to Coinbase'), }, 'Continue to Coinbase'),
h('button', { h('button', {
onClick: () => props.dispatch(actions.backToAccountDetail(props.accounts.address)), onClick: () => props.dispatch(actions.backTobuyView(props.accounts.address)),
}, 'Cancel'), }, 'Cancel'),
]), ]),
]) ])
@ -132,12 +108,12 @@ CoinbaseForm.prototype.handleAddress = function (event) {
} }
CoinbaseForm.prototype.toCoinbase = function () { CoinbaseForm.prototype.toCoinbase = function () {
var props = this.props var props = this.props
var amount = props.accountDetail.amount var amount = props.buyView.amount
var address = props.accountDetail.buyAddress var address = props.buyView.buyAddress
var message var message
if (isValidAddress(address) && isValidAmountforCoinBase(amount).valid) { if (isValidAddress(address) && isValidAmountforCoinBase(amount).valid) {
props.dispatch(actions.buyEth(address, props.accountDetail.amount)) props.dispatch(actions.buyEth(address, props.buyView.amount))
} else if (!isValidAmountforCoinBase(amount).valid) { } else if (!isValidAmountforCoinBase(amount).valid) {
message = isValidAmountforCoinBase(amount).message message = isValidAmountforCoinBase(amount).message
return props.dispatch(actions.showWarning(message)) return props.dispatch(actions.showWarning(message))

View File

@ -0,0 +1,50 @@
const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
const connect = require('react-redux').connect
const CopyButton = require('./copyButton')
module.exports = connect(mapStateToProps)(QrCodeView)
function mapStateToProps (state) {
return {
Qr: state.appState.Qr,
buyView: state.appState.buyView,
}
}
inherits(QrCodeView, Component)
function QrCodeView () {
Component.call(this)
}
QrCodeView.prototype.render = function () {
var props = this.props
var Qr = props.Qr
return h('.main-container.flex-column', {
style: {
justifyContent: 'center',
padding: '45px',
alignItems: 'center',
},
}, [
h('h3', Qr.message),
h('#qr-container.flex-column', {
key: 'qr',
style: {
marginTop: '25px',
marginBottom: '15px',
},
dangerouslySetInnerHTML: {
__html: Qr.image,
},
}),
h('.flex-row', [
h('h3.ellip-address', Qr.data),
h(CopyButton, {
value: Qr.data,
}),
]),
])
}

View File

@ -2,9 +2,9 @@ const Component = require('react').Component
const h = require('react-hyperscript') const h = require('react-hyperscript')
const inherits = require('util').inherits const inherits = require('util').inherits
const connect = require('react-redux').connect const connect = require('react-redux').connect
const ReactCSSTransitionGroup = require('react-addons-css-transition-group')
const actions = require('../actions') const actions = require('../actions')
const CopyButton = require('./copyButton') const Qr = require('./qr-code')
const isValidAddress = require('../util').isValidAddress const isValidAddress = require('../util').isValidAddress
module.exports = connect(mapStateToProps)(ShapeshiftForm) module.exports = connect(mapStateToProps)(ShapeshiftForm)
@ -13,23 +13,36 @@ function mapStateToProps(state) {
selectedAccount: state.selectedAccount, selectedAccount: state.selectedAccount,
warning: state.appState.warning, warning: state.appState.warning,
isSubLoading: state.appState.isSubLoading, isSubLoading: state.appState.isSubLoading,
qrRequested: state.appState.qrRequested,
} }
} }
inherits(ShapeshiftForm, Component) inherits(ShapeshiftForm, Component)
function ShapeshiftForm() { function ShapeshiftForm () {
Component.call(this) Component.call(this)
} }
ShapeshiftForm.prototype.render = function () { ShapeshiftForm.prototype.render = function () {
const marketinfo = this.props.accountDetail.formView.marketinfo return h(ReactCSSTransitionGroup, {
const coinOptions = this.props.accountDetail.formView.coinOptions className: 'css-transition-group',
transitionName: 'main',
transitionEnterTimeout: 300,
transitionLeaveTimeout: 300,
}, [
this.props.qrRequested ? h(Qr, {key: 'qr'}) : this.renderMain(),
])
}
ShapeshiftForm.prototype.renderMain = function () {
const marketinfo = this.props.buyView.formView.marketinfo
const coinOptions = this.props.buyView.formView.coinOptions
var coin = marketinfo.pair.split('_')[0].toUpperCase() var coin = marketinfo.pair.split('_')[0].toUpperCase()
return h('.flex-column', { return h('.flex-column', {
style: { style: {
marginTop: '10px', // marginTop: '10px',
padding: '25px',
width: '100%', width: '100%',
alignItems: 'center', alignItems: 'center',
}, },
@ -67,8 +80,8 @@ ShapeshiftForm.prototype.render = function () {
fontSize: '12px', fontSize: '12px',
color: '#F7861C', color: '#F7861C',
position: 'relative', position: 'relative',
bottom: '23px', bottom: '48px',
right: '11px', left: '106px',
}, },
}), }),
]), ]),
@ -78,7 +91,7 @@ ShapeshiftForm.prototype.render = function () {
style: { style: {
position: 'relative', position: 'relative',
bottom: '5px', bottom: '5px',
right: '5px', left: '5px',
color: '#F7861C', color: '#F7861C',
}, },
onClick: this.updateCoin.bind(this), onClick: this.updateCoin.bind(this),
@ -86,8 +99,8 @@ ShapeshiftForm.prototype.render = function () {
h('i.fa.fa-chevron-right.fa-4.orange', { h('i.fa.fa-chevron-right.fa-4.orange', {
style: { style: {
position: 'relative', position: 'relative',
bottom: '5px', bottom: '26px',
right: '15px', left: '10px',
color: '#F7861C', color: '#F7861C',
}, },
onClick: this.updateCoin.bind(this), onClick: this.updateCoin.bind(this),
@ -107,7 +120,6 @@ ShapeshiftForm.prototype.render = function () {
]), ]),
this.props.isSubLoading ? this.renderLoading() : null, this.props.isSubLoading ? this.renderLoading() : null,
h('.flex-column', { h('.flex-column', {
style: { style: {
width: '235px', width: '235px',
@ -124,40 +136,21 @@ ShapeshiftForm.prototype.render = function () {
this.props.warning) : this.renderInfo(), this.props.warning) : this.renderInfo(),
]), ]),
h(this.activeToggle('.input-container'), { h('.flex-row', {
style: { style: {
padding: '10px', padding: '10px',
paddingBottom: '0px', paddingBottom: '2px',
width: '100%', width: '100%',
}, },
}, [ }, [
h('div', 'Receiving address:'), h('div', 'Receiving address:'),
h('.ellip-address', this.props.buyView.buyAddress),
h('input.buy-inputs', {
type: 'text',
value: this.props.accountDetail.buyAddress,
onChange: this.handleAddress.bind(this),
style: {
boxSizing: 'border-box',
width: '325px',
height: '20px',
padding: ' 5px ',
},
}),
h('i.fa.fa-pencil-square-o.edit-text', {
style: {
fontSize: '12px',
color: '#F7861C',
position: 'relative',
bottom: '5px',
right: '11px',
},
}),
]), ]),
h(this.activeToggle('.input-container'), { h(this.activeToggle('.input-container'), {
style: { style: {
padding: '10px', padding: '10px',
paddingTop: '0px',
width: '100%', width: '100%',
}, },
}, [ }, [
@ -168,7 +161,7 @@ ShapeshiftForm.prototype.render = function () {
placeholder: `Your ${coin} Refund Address`, placeholder: `Your ${coin} Refund Address`,
style: { style: {
boxSizing: 'border-box', boxSizing: 'border-box',
width: '235px', width: '278px',
height: '20px', height: '20px',
padding: ' 5px ', padding: ' 5px ',
}, },
@ -183,19 +176,27 @@ ShapeshiftForm.prototype.render = function () {
right: '11px', right: '11px',
}, },
}), }),
h('.flex-row', {
h('button', { style: {
onClick: this.shift.bind(this), justifyContent: 'flex-end',
}, },
'Submit'), }, [
h('button', {
onClick: this.shift.bind(this),
style: {
marginTop: '10px',
},
},
'Submit'),
]),
]), ]),
]) ])
} }
ShapeshiftForm.prototype.shift = function () { ShapeshiftForm.prototype.shift = function () {
var withdrawal = this.props.accountDetail.buyAddress var withdrawal = this.props.buyView.buyAddress
var returnAddress = document.getElementById('fromCoinAddress').value var returnAddress = document.getElementById('fromCoinAddress').value
var pair = this.props.accountDetail.formView.marketinfo.pair var pair = this.props.buyView.formView.marketinfo.pair
var data = { var data = {
'withdrawal': withdrawal, 'withdrawal': withdrawal,
'pair': pair, 'pair': pair,
@ -208,7 +209,7 @@ ShapeshiftForm.prototype.shift = function () {
} }
ShapeshiftForm.prototype.renderCoinList = function () { ShapeshiftForm.prototype.renderCoinList = function () {
var list = Object.keys(this.props.accountDetail.formView.coinOptions).map((item) => { var list = Object.keys(this.props.buyView.formView.coinOptions).map((item) => {
return h('option', { return h('option', {
value: item, value: item,
}, item) }, item)
@ -224,7 +225,7 @@ ShapeshiftForm.prototype.renderCoinList = function () {
ShapeshiftForm.prototype.updateCoin = function (event) { ShapeshiftForm.prototype.updateCoin = function (event) {
event.preventDefault() event.preventDefault()
const props = this.props const props = this.props
var coinOptions = this.props.accountDetail.formView.coinOptions var coinOptions = this.props.buyView.formView.coinOptions
var coin = document.getElementById('fromCoin').value var coin = document.getElementById('fromCoin').value
if (!coinOptions[coin.toUpperCase()] || coin.toUpperCase() === 'ETH') { if (!coinOptions[coin.toUpperCase()] || coin.toUpperCase() === 'ETH') {
@ -237,7 +238,7 @@ ShapeshiftForm.prototype.updateCoin = function (event) {
ShapeshiftForm.prototype.handleLiveInput = function () { ShapeshiftForm.prototype.handleLiveInput = function () {
const props = this.props const props = this.props
var coinOptions = this.props.accountDetail.formView.coinOptions var coinOptions = this.props.buyView.formView.coinOptions
var coin = document.getElementById('fromCoin').value var coin = document.getElementById('fromCoin').value
if (!coinOptions[coin.toUpperCase()] || coin.toUpperCase() === 'ETH') { if (!coinOptions[coin.toUpperCase()] || coin.toUpperCase() === 'ETH') {
@ -248,61 +249,30 @@ ShapeshiftForm.prototype.handleLiveInput = function () {
} }
ShapeshiftForm.prototype.renderInfo = function () { ShapeshiftForm.prototype.renderInfo = function () {
const marketinfo = this.props.accountDetail.formView.marketinfo const marketinfo = this.props.buyView.formView.marketinfo
const coinOptions = this.props.accountDetail.formView.coinOptions const coinOptions = this.props.buyView.formView.coinOptions
var coin = marketinfo.pair.split('_')[0].toUpperCase() var coin = marketinfo.pair.split('_')[0].toUpperCase()
const request = this.props.accountDetail.formView.response
if (!request) { return h('span', {
return h('span', [ style: {
h('h3.flex-row.text-transform-uppercase', { marginTop: '15px',
style: { marginBottom: '15px',
color: '#AEAEAE', },
paddingTop: '4px', }, [
justifyContent: 'space-around', h('h3.flex-row.text-transform-uppercase', {
textAlign: 'center',
fontSize: '14px',
},
}, `Market Info for ${marketinfo.pair.replace('_', ' to ').toUpperCase()}:`),
h('.marketinfo', ['Status : ', `${coinOptions[coin].status}`]),
h('.marketinfo', ['Exchange Rate: ', `${marketinfo.rate}`]),
h('.marketinfo', ['Limit: ', `${marketinfo.limit}`]),
h('.marketinfo', ['Minimum : ', `${marketinfo.minimum}`]),
])
} else {
return h('.flex-column', {
style: { style: {
width: '229px', color: '#AEAEAE',
height: '82px', paddingTop: '4px',
justifyContent: 'space-around',
textAlign: 'center',
fontSize: '14px',
}, },
}, [ }, `Market Info for ${marketinfo.pair.replace('_', ' to ').toUpperCase()}:`),
h('.marketinfo', ['Limit: ', `${marketinfo.limit}`]), h('.marketinfo', ['Status : ', `${coinOptions[coin].status}`]),
h('.marketinfo', ['Minimum : ', `${marketinfo.minimum}`]), h('.marketinfo', ['Exchange Rate: ', `${marketinfo.rate}`]),
h('div', { h('.marketinfo', ['Limit: ', `${marketinfo.limit}`]),
style: { h('.marketinfo', ['Minimum : ', `${marketinfo.minimum}`]),
fontSize: '12px', ])
lineHeight: '16px',
marginTop: '4px',
color: '#F7861C',
},
}, `Deposit your ${request.depositType} to the address bellow:`),
h('.flex-row', {
style: {
position: 'relative',
right: '38px',
},
}, [
h('div', {
style: {
fontSize: '13px',
},
}, request.deposit),
h(CopyButton, {
value: request.deposit,
}),
]),
])
}
} }
ShapeshiftForm.prototype.handleAddress = function (event) { ShapeshiftForm.prototype.handleAddress = function (event) {
@ -310,7 +280,7 @@ ShapeshiftForm.prototype.handleAddress = function (event) {
} }
ShapeshiftForm.prototype.activeToggle = function (elementType) { ShapeshiftForm.prototype.activeToggle = function (elementType) {
if (!this.props.accountDetail.formView.response || this.props.warning) return elementType if (!this.props.buyView.formView.response || this.props.warning) return elementType
return `${elementType}.inactive` return `${elementType}.inactive`
} }
@ -319,7 +289,7 @@ ShapeshiftForm.prototype.renderLoading = function () {
style: { style: {
position: 'absolute', position: 'absolute',
left: '70px', left: '70px',
bottom: '138px', bottom: '194px',
background: 'transparent', background: 'transparent',
width: '229px', width: '229px',
height: '82px', height: '82px',

View File

@ -573,3 +573,12 @@ input.large-input {
background: #AEAEAE; background: #AEAEAE;
color: white; color: white;
} }
.ellip-address {
overflow: hidden;
text-overflow: ellipsis;
width: 5em;
font-size: 14px;
font-family: "Montserrat Light";
margin-left: 5px;
}

View File

@ -378,17 +378,17 @@ function reduceApp (state, action) {
}, },
}) })
case actions.BUY_ETH_SUBVIEW: case actions.BUY_ETH_VIEW:
return extend(appState, { return extend(appState, {
transForward: true, transForward: true,
currentView: { currentView: {
name: 'accountDetail', name: 'buyEth',
context: appState.currentView.context, context: appState.currentView.context,
}, },
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
amount: '5.00', amount: '5.00',
buyAddress: appState.currentView.context, buyAddress: action.value,
formView: { formView: {
coinbase: true, coinbase: true,
shapeshift: false, shapeshift: false,
@ -398,46 +398,46 @@ function reduceApp (state, action) {
case actions.UPDATE_BUY_ADDRESS: case actions.UPDATE_BUY_ADDRESS:
return extend(appState, { return extend(appState, {
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
formView: { formView: {
coinbase: true, coinbase: appState.buyView.formView.coinbase,
shapeshift: false, shapeshift: appState.buyView.formView.shapeshift,
}, },
buyAddress: action.value, buyAddress: action.value,
amount: appState.accountDetail.amount, amount: appState.buyView.amount,
}, },
}) })
case actions.UPDATE_COINBASE_AMOUNT: case actions.UPDATE_COINBASE_AMOUNT:
return extend(appState, { return extend(appState, {
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
formView: { formView: {
coinbase: true, coinbase: true,
shapeshift: false, shapeshift: false,
}, },
buyAddress: appState.accountDetail.buyAddress, buyAddress: appState.buyView.buyAddress,
amount: action.value, amount: action.value,
}, },
}) })
case actions.COINBASE_SUBVIEW: case actions.COINBASE_SUBVIEW:
return extend(appState, { return extend(appState, {
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
formView: { formView: {
coinbase: true, coinbase: true,
shapeshift: false, shapeshift: false,
}, },
buyAddress: appState.accountDetail.buyAddress, buyAddress: appState.buyView.buyAddress,
amount: appState.accountDetail.amount, amount: appState.buyView.amount,
}, },
}) })
case actions.SHAPESHIFT_SUBVIEW: case actions.SHAPESHIFT_SUBVIEW:
return extend(appState, { return extend(appState, {
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
formView: { formView: {
coinbase: false, coinbase: false,
@ -445,41 +445,35 @@ function reduceApp (state, action) {
marketinfo: action.value.marketinfo, marketinfo: action.value.marketinfo,
coinOptions: action.value.coinOptions, coinOptions: action.value.coinOptions,
}, },
buyAddress: appState.accountDetail.buyAddress, buyAddress: appState.buyView.buyAddress,
amount: appState.accountDetail.amount, amount: appState.buyView.amount,
}, },
}) })
case actions.PAIR_UPDATE: case actions.PAIR_UPDATE:
return extend(appState, { return extend(appState, {
accountDetail: { buyView: {
subview: 'buyForm', subview: 'buyForm',
formView: { formView: {
coinbase: false, coinbase: false,
shapeshift: true, shapeshift: true,
marketinfo: action.value.marketinfo, marketinfo: action.value.marketinfo,
coinOptions: appState.accountDetail.formView.coinOptions, coinOptions: appState.buyView.formView.coinOptions,
}, },
buyAddress: appState.accountDetail.buyAddress, buyAddress: appState.buyView.buyAddress,
amount: appState.accountDetail.amount, amount: appState.buyView.amount,
warning: null, warning: null,
}, },
}) })
case actions.COIN_SHIFT_REQUEST: case actions.SHOW_QR:
return extend(appState, { return extend(appState, {
accountDetail: { qrRequested: true,
subview: 'buyForm', transForward: true,
formView: { Qr: {
coinbase: false, message: action.value.message,
shapeshift: true, image: action.value.qr,
marketinfo: appState.accountDetail.formView.marketinfo, data: action.value.data,
coinOptions: appState.accountDetail.formView.coinOptions,
response: action.value.response,
},
buyAddress: appState.accountDetail.buyAddress,
amount: appState.accountDetail.amount,
warning: null,
}, },
}) })
default: default: