diff --git a/js/src/redux/providers/registry/reducer.js b/js/src/redux/providers/registry/reducer.js index 42663897a..5c267d822 100644 --- a/js/src/redux/providers/registry/reducer.js +++ b/js/src/redux/providers/registry/reducer.js @@ -20,6 +20,10 @@ const initialState = { export default (state = initialState, action) => { if (action.type === 'setReverse') { + if (state.reverse[action.address] === action.reverse) { + return state; + } + return { ...state, reverse: { ...state.reverse, [ action.address ]: action.reverse } }; diff --git a/js/src/ui/Form/AddressSelect/addressSelectStore.js b/js/src/ui/Form/AddressSelect/addressSelectStore.js index 1c93088d7..bdb7c1fb2 100644 --- a/js/src/ui/Form/AddressSelect/addressSelectStore.js +++ b/js/src/ui/Form/AddressSelect/addressSelectStore.js @@ -36,6 +36,7 @@ export default class AddressSelectStore { if (query.length === 0 || query === '0x') { return null; } + const startsWithQuery = (s) => new RegExp('^' + query, 'i').test(s); let address; let name = this.reverse[query]; @@ -44,12 +45,8 @@ export default class AddressSelectStore { const addr = Object .keys(this.reverse) .find((addr) => { - if (addr.toLowerCase().slice(0, query.length) === query) { - return true; - } - const name = this.reverse[addr]; - return name.toLowerCase().slice(0, query.length) === query; + return startsWithQuery(addr) || (name && startsWithQuery(name)); }); if (addr) {