parent
4e9376ca71
commit
71b2dd290b
@ -0,0 +1,73 @@ |
|||||||
|
const Component = require('react').Component |
||||||
|
const h = require('react-hyperscript') |
||||||
|
const inherits = require('util').inherits |
||||||
|
const connect = require('react-redux').connect |
||||||
|
const actions = require('../../actions') |
||||||
|
|
||||||
|
function mapStateToProps (state) { |
||||||
|
return { |
||||||
|
address: state.metamask.selectedAddress, |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function mapDispatchToProps (dispatch) { |
||||||
|
return { |
||||||
|
hideModal: () => { |
||||||
|
dispatch(actions.hideModal()) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
inherits(AccountDetailsModal, Component) |
||||||
|
function AccountDetailsModal () { |
||||||
|
Component.call(this) |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = connect(mapStateToProps, mapDispatchToProps)(AccountDetailsModal) |
||||||
|
|
||||||
|
// AccountDetailsModal is currently meant to be rendered inside <Modal />
|
||||||
|
// It is the only component in this codebase that does so
|
||||||
|
// It utilizes modal styles
|
||||||
|
AccountDetailsModal.prototype.render = function () { |
||||||
|
return h('div', {}, [ |
||||||
|
h('div.modal-content.transfers-subview', { |
||||||
|
}, [ |
||||||
|
h('div.modal-content-title-wrapper.flex-column.flex-center', { |
||||||
|
style: {}, |
||||||
|
}, [ |
||||||
|
h('div.modal-content-title', { |
||||||
|
style: {}, |
||||||
|
}, 'Account Details Modal'), |
||||||
|
h('div', {}, 'How would you like to buy Ether?'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-options.flex-column.flex-center', {}, [ |
||||||
|
|
||||||
|
h('div.modal-content-option', { |
||||||
|
onClick: () => {}, |
||||||
|
}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Coinbase'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Buy with Fiat'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-option', {}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Shapeshift'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Trade any digital asset for any other'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-option', {}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Direct Deposit'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Deposit from another account'), |
||||||
|
]), |
||||||
|
|
||||||
|
]), |
||||||
|
|
||||||
|
h('button', { |
||||||
|
style: { |
||||||
|
background: 'white', |
||||||
|
}, |
||||||
|
onClick: () => { this.props.hideModal() }, |
||||||
|
}, h('div.modal-content-footer#modal-content-footer-text',{}, 'Cancel')), |
||||||
|
]) |
||||||
|
]) |
||||||
|
} |
@ -1,43 +0,0 @@ |
|||||||
const Component = require('react').Component |
|
||||||
const h = require('react-hyperscript') |
|
||||||
const inherits = require('util').inherits |
|
||||||
const BuyOptions = require('../buy-options') |
|
||||||
const Modal = require('./modal.js') |
|
||||||
|
|
||||||
inherits(BuyModal, Component) |
|
||||||
function BuyModal () { |
|
||||||
Component.call(this) |
|
||||||
} |
|
||||||
|
|
||||||
module.exports = BuyModal |
|
||||||
|
|
||||||
BuyModal.prototype.render = function () { |
|
||||||
return h(Modal, { |
|
||||||
ref: "modalRef", |
|
||||||
}, [ |
|
||||||
h(BuyOptions, {}, []), |
|
||||||
]) |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
// TODO: specify default props and proptypes
|
|
||||||
|
|
||||||
// Generalize to multiple modals:
|
|
||||||
// Modal API:
|
|
||||||
// - props {
|
|
||||||
// key: ['BUY', 'EDIT_ACCOUNT_NAME', 'ACCOUNT_DETAILS']
|
|
||||||
// }
|
|
||||||
// - These props will be passed as 'active'
|
|
||||||
// mapStateToProps(state, ownProps) {
|
|
||||||
// active: state.appState.modal[key]
|
|
||||||
// }
|
|
||||||
// - Modal accepts:
|
|
||||||
// - mobileModalStyles, for mobile viewports
|
|
||||||
// - laptopModalStyles, for laptop viewports
|
|
||||||
// - backdropStyles
|
|
||||||
// - Do not set defaults, they are unneeded here
|
|
||||||
//
|
|
||||||
// If multiple-step modals are needed:
|
|
||||||
// - pass a component with internal state that tracks buy steps
|
|
||||||
// - steps could technically be in redux
|
|
||||||
// - it renders and does not trigger open/close actions until done
|
|
@ -0,0 +1,80 @@ |
|||||||
|
const Component = require('react').Component |
||||||
|
const h = require('react-hyperscript') |
||||||
|
const inherits = require('util').inherits |
||||||
|
const connect = require('react-redux').connect |
||||||
|
const actions = require('../../actions') |
||||||
|
|
||||||
|
function mapStateToProps (state) { |
||||||
|
return { |
||||||
|
network: state.metamask.network, |
||||||
|
address: state.metamask.selectedAddress, |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function mapDispatchToProps (dispatch) { |
||||||
|
return { |
||||||
|
toCoinbase: (address) => { |
||||||
|
dispatch(actions.buyEth({ network: '1', address, amount: 0 })) |
||||||
|
}, |
||||||
|
hideModal: () => { |
||||||
|
dispatch(actions.hideModal()) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
inherits(BuyOptions, Component) |
||||||
|
function BuyOptions () { |
||||||
|
Component.call(this) |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = connect(mapStateToProps, mapDispatchToProps)(BuyOptions) |
||||||
|
|
||||||
|
// BuyOptions is currently meant to be rendered inside <Modal />
|
||||||
|
// It is the only component in this codebase that does so
|
||||||
|
// It utilizes modal styles
|
||||||
|
BuyOptions.prototype.render = function () { |
||||||
|
return h('div', {}, [ |
||||||
|
h('div.modal-content.transfers-subview', { |
||||||
|
}, [ |
||||||
|
h('div.modal-content-title-wrapper.flex-column.flex-center', { |
||||||
|
style: {}, |
||||||
|
}, [ |
||||||
|
h('div.modal-content-title', { |
||||||
|
style: {}, |
||||||
|
}, 'Edit Account Name Modal'), |
||||||
|
h('div', {}, 'How would you like to buy Ether?'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-options.flex-column.flex-center', {}, [ |
||||||
|
|
||||||
|
h('div.modal-content-option', { |
||||||
|
onClick: () => { |
||||||
|
const { toCoinbase, address } = this.props |
||||||
|
toCoinbase(address) |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Coinbase'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Buy with Fiat'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-option', {}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Shapeshift'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Trade any digital asset for any other'), |
||||||
|
]), |
||||||
|
|
||||||
|
h('div.modal-content-option', {}, [ |
||||||
|
h('div.modal-content-option-title', {}, 'Direct Deposit'), |
||||||
|
h('div.modal-content-option-subtitle', {}, 'Deposit from another account'), |
||||||
|
]), |
||||||
|
|
||||||
|
]), |
||||||
|
|
||||||
|
h('button', { |
||||||
|
style: { |
||||||
|
background: 'white', |
||||||
|
}, |
||||||
|
onClick: () => { this.props.hideModal() }, |
||||||
|
}, h('div.modal-content-footer#modal-content-footer-text',{}, 'Cancel')), |
||||||
|
]) |
||||||
|
]) |
||||||
|
} |
@ -1,9 +1,5 @@ |
|||||||
const Modal = require('./modal') |
const Modal = require('./modal') |
||||||
const BuyModal = require('./buy-modal') |
|
||||||
// const h = require('account-options')
|
|
||||||
// const h = require('account-details')
|
|
||||||
|
|
||||||
module.exports = { |
module.exports = { |
||||||
Modal, |
Modal, |
||||||
BuyModal, |
|
||||||
} |
} |
Loading…
Reference in new issue