aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/pages
diff options
context:
space:
mode:
authorDan J Miller <danjm.com@gmail.com>2019-08-14 07:13:05 +0800
committerGitHub <noreply@github.com>2019-08-14 07:13:05 +0800
commit043920c9ff56477ed05e0cd121808b16b4680a20 (patch)
tree96db25d872e94985022774f09ebdb0688764ceaa /ui/app/pages
parent6bc10778804ca45dfa089a180f14bbbee346e37d (diff)
downloadtangerine-wallet-browser-043920c9ff56477ed05e0cd121808b16b4680a20.tar.gz
tangerine-wallet-browser-043920c9ff56477ed05e0cd121808b16b4680a20.tar.zst
tangerine-wallet-browser-043920c9ff56477ed05e0cd121808b16b4680a20.zip
Address book fixes (#6978)
* Ensure address book send flow correctly matches address book addresses to ens addresses * Use nodify on background.setAddressBook to receive correct result in actions.js * Better error handling for actions.js addToAddressBook * Eliminate unnecessary data normalization and move more data manipluation to ens-input and send-content containers
Diffstat (limited to 'ui/app/pages')
-rw-r--r--ui/app/pages/send/send-content/add-recipient/ens-input.component.js5
-rw-r--r--ui/app/pages/send/send-content/add-recipient/ens-input.container.js17
-rw-r--r--ui/app/pages/send/send-content/send-content.component.js7
-rw-r--r--ui/app/pages/send/send-content/send-content.container.js10
-rw-r--r--ui/app/pages/send/send-content/tests/send-content-component.test.js11
5 files changed, 25 insertions, 25 deletions
diff --git a/ui/app/pages/send/send-content/add-recipient/ens-input.component.js b/ui/app/pages/send/send-content/add-recipient/ens-input.component.js
index 498d72605..483d5d344 100644
--- a/ui/app/pages/send/send-content/add-recipient/ens-input.component.js
+++ b/ui/app/pages/send/send-content/add-recipient/ens-input.component.js
@@ -30,10 +30,10 @@ export default class EnsInput extends Component {
updateEnsResolution: PropTypes.func,
scanQrCode: PropTypes.func,
updateEnsResolutionError: PropTypes.func,
- addressBook: PropTypes.array,
onPaste: PropTypes.func,
onReset: PropTypes.func,
onValidAddressTyped: PropTypes.func,
+ contact: PropTypes.object,
}
state = {
@@ -181,8 +181,7 @@ export default class EnsInput extends Component {
renderSelected () {
const { t } = this.context
- const { className, selectedAddress, selectedName, addressBook } = this.props
- const contact = addressBook.filter(item => item.address === selectedAddress)[0] || {}
+ const { className, selectedAddress, selectedName, contact = {} } = this.props
const name = contact.name || selectedName
diff --git a/ui/app/pages/send/send-content/add-recipient/ens-input.container.js b/ui/app/pages/send/send-content/add-recipient/ens-input.container.js
index d74f44832..c37980c49 100644
--- a/ui/app/pages/send/send-content/add-recipient/ens-input.container.js
+++ b/ui/app/pages/send/send-content/add-recipient/ens-input.container.js
@@ -5,16 +5,19 @@ import {
getSendToNickname,
} from '../../send.selectors'
import {
- getAddressBook,
+ getAddressBookEntry,
} from '../../../../selectors/selectors'
const connect = require('react-redux').connect
export default connect(
- state => ({
- network: getCurrentNetwork(state),
- selectedAddress: getSendTo(state),
- selectedName: getSendToNickname(state),
- addressBook: getAddressBook(state),
- })
+ state => {
+ const selectedAddress = getSendTo(state)
+ return {
+ network: getCurrentNetwork(state),
+ selectedAddress,
+ selectedName: getSendToNickname(state),
+ contact: getAddressBookEntry(state, selectedAddress),
+ }
+ }
)(EnsInput)
diff --git a/ui/app/pages/send/send-content/send-content.component.js b/ui/app/pages/send/send-content/send-content.component.js
index aff675e7a..55e0e30e2 100644
--- a/ui/app/pages/send/send-content/send-content.component.js
+++ b/ui/app/pages/send/send-content/send-content.component.js
@@ -18,9 +18,10 @@ export default class SendContent extends Component {
scanQrCode: PropTypes.func,
showAddToAddressBookModal: PropTypes.func,
showHexData: PropTypes.bool,
- to: PropTypes.string,
ownedAccounts: PropTypes.array,
addressBook: PropTypes.array,
+ contact: PropTypes.object,
+ isOwnedAccount: PropTypes.bool,
}
updateGas = (updateData) => this.props.updateGas(updateData)
@@ -47,9 +48,7 @@ export default class SendContent extends Component {
maybeRenderAddContact () {
const { t } = this.context
- const { to, addressBook = [], ownedAccounts = [], showAddToAddressBookModal } = this.props
- const isOwnedAccount = !!ownedAccounts.find(({ address }) => address.toLowerCase() === to.toLowerCase())
- const contact = addressBook.find(({ address }) => address === to) || {}
+ const { isOwnedAccount, showAddToAddressBookModal, contact = {} } = this.props
if (isOwnedAccount || contact.name) {
return
diff --git a/ui/app/pages/send/send-content/send-content.container.js b/ui/app/pages/send/send-content/send-content.container.js
index a0732fc20..a122aca1a 100644
--- a/ui/app/pages/send/send-content/send-content.container.js
+++ b/ui/app/pages/send/send-content/send-content.container.js
@@ -5,15 +5,17 @@ import {
getSendTo,
} from '../send.selectors'
import {
- getAddressBook,
+ getAddressBookEntry,
} from '../../../selectors/selectors'
import actions from '../../../store/actions'
function mapStateToProps (state) {
+ const ownedAccounts = accountsWithSendEtherInfoSelector(state)
+ const to = getSendTo(state)
return {
- to: getSendTo(state),
- addressBook: getAddressBook(state),
- ownedAccounts: accountsWithSendEtherInfoSelector(state),
+ isOwnedAccount: !!ownedAccounts.find(({ address }) => address.toLowerCase() === to.toLowerCase()),
+ contact: getAddressBookEntry(state, to),
+ to,
}
}
diff --git a/ui/app/pages/send/send-content/tests/send-content-component.test.js b/ui/app/pages/send/send-content/tests/send-content-component.test.js
index 451d2ea53..479db9c18 100644
--- a/ui/app/pages/send/send-content/tests/send-content-component.test.js
+++ b/ui/app/pages/send/send-content/tests/send-content-component.test.js
@@ -52,11 +52,10 @@ describe('SendContent Component', function () {
assert.equal(PageContainerContentChild.childAt(4).exists(), false)
})
- it('should not render the Dialog if addressBook contains "to" address', () => {
+ it('should not render the Dialog if contact has a name', () => {
wrapper.setProps({
showHexData: false,
- to: '0x80F061544cC398520615B5d3e7A3BedD70cd4510',
- addressBook: [{ address: '0x80F061544cC398520615B5d3e7A3BedD70cd4510', name: 'dinodan' }],
+ contact: { name: 'testName' },
})
const PageContainerContentChild = wrapper.find(PageContainerContent).children()
assert(PageContainerContentChild.childAt(0).is(SendAssetRow), 'row[1] should be SendAssetRow')
@@ -65,12 +64,10 @@ describe('SendContent Component', function () {
assert.equal(PageContainerContentChild.childAt(3).exists(), false)
})
- it('should not render the Dialog if ownedAccounts contains "to" address', () => {
+ it('should not render the Dialog if it is an ownedAccount', () => {
wrapper.setProps({
showHexData: false,
- to: '0x80F061544cC398520615B5d3e7A3BedD70cd4510',
- addressBook: [],
- ownedAccounts: [{ address: '0x80F061544cC398520615B5d3e7A3BedD70cd4510', name: 'dinodan' }],
+ isOwnedAccount: true,
})
const PageContainerContentChild = wrapper.find(PageContainerContent).children()
assert(PageContainerContentChild.childAt(0).is(SendAssetRow), 'row[1] should be SendAssetRow')