|
|
@ -3,6 +3,10 @@ const extend = require('xtend') |
|
|
|
|
|
|
|
|
|
|
|
class AddressBookController { |
|
|
|
class AddressBookController { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Controller in charge of managing the address book functionality from the
|
|
|
|
|
|
|
|
// recipients field on the send screen. Manages a history of all saved
|
|
|
|
|
|
|
|
// addresses and all currently owned addresses.
|
|
|
|
constructor (opts = {}) { |
|
|
|
constructor (opts = {}) { |
|
|
|
const initState = extend({ |
|
|
|
const initState = extend({ |
|
|
|
addressBook: [], |
|
|
|
addressBook: [], |
|
|
@ -14,8 +18,9 @@ class AddressBookController { |
|
|
|
// PUBLIC METHODS
|
|
|
|
// PUBLIC METHODS
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Sets a new address book in store by accepting a new address and nickname.
|
|
|
|
setAddressBook (address, name) { |
|
|
|
setAddressBook (address, name) { |
|
|
|
return this.addToAddressBook(address, name) |
|
|
|
return this._addToAddressBook(address, name) |
|
|
|
.then((addressBook) => { |
|
|
|
.then((addressBook) => { |
|
|
|
this.store.updateState({ |
|
|
|
this.store.updateState({ |
|
|
|
addressBook, |
|
|
|
addressBook, |
|
|
@ -24,8 +29,16 @@ class AddressBookController { |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
addToAddressBook (address, name) { |
|
|
|
//
|
|
|
|
let addressBook = this.getAddressBook() |
|
|
|
// PRIVATE METHODS
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Performs the logic to add the address and name into the address book. The
|
|
|
|
|
|
|
|
// pushed object is an object of two fields. Current behavior does not set an
|
|
|
|
|
|
|
|
// upper limit to the number of addresses.
|
|
|
|
|
|
|
|
_addToAddressBook (address, name) { |
|
|
|
|
|
|
|
let addressBook = this._getAddressBook() |
|
|
|
let index = addressBook.findIndex((element) => { return element.address === address || element.name === name }) |
|
|
|
let index = addressBook.findIndex((element) => { return element.address === address || element.name === name }) |
|
|
|
if (index !== -1) { |
|
|
|
if (index !== -1) { |
|
|
|
addressBook.splice(index, 1) |
|
|
|
addressBook.splice(index, 1) |
|
|
@ -37,7 +50,9 @@ class AddressBookController { |
|
|
|
return Promise.resolve(addressBook) |
|
|
|
return Promise.resolve(addressBook) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
getAddressBook () { |
|
|
|
// Internal method to get the address book. Current persistence behavior
|
|
|
|
|
|
|
|
// should not require that this method be called from the UI directly.
|
|
|
|
|
|
|
|
_getAddressBook () { |
|
|
|
return this.store.getState().addressBook |
|
|
|
return this.store.getState().addressBook |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|