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 BuyModal = require('./buy-modal') |
||||
// const h = require('account-options')
|
||||
// const h = require('account-details')
|
||||
|
||||
module.exports = { |
||||
Modal, |
||||
BuyModal, |
||||
} |
Loading…
Reference in new issue