diff --git a/packages/neuron-ui/src/components/History/hooks.ts b/packages/neuron-ui/src/components/History/hooks.ts index 2733e4f59f..aa87a65b95 100644 --- a/packages/neuron-ui/src/components/History/hooks.ts +++ b/packages/neuron-ui/src/components/History/hooks.ts @@ -1,5 +1,4 @@ import { useState, useEffect } from 'react' -import { AppActions } from 'states/stateProvider/reducer' import { updateTransactionList } from 'states/stateProvider/actionCreators/transactions' import { queryParsers } from 'utils/parser' @@ -27,10 +26,6 @@ export const useSearch = (search: string = '', walletID: string = '', dispatch: backToTop() const params = queryParsers.history(search) setKeywords(params.keywords) - dispatch({ - type: AppActions.CleanTransactions, - payload: null, - }) updateTransactionList({ ...params, keywords: params.keywords, walletID })(dispatch) }, [search, walletID, dispatch]) return { keywords, onKeywordsChange, setKeywords } diff --git a/packages/neuron-ui/src/states/stateProvider/actionCreators/transactions.ts b/packages/neuron-ui/src/states/stateProvider/actionCreators/transactions.ts index 76d23600ae..da08fb29d9 100644 --- a/packages/neuron-ui/src/states/stateProvider/actionCreators/transactions.ts +++ b/packages/neuron-ui/src/states/stateProvider/actionCreators/transactions.ts @@ -44,7 +44,13 @@ export const updateTransactionDescription = (params: Controller.UpdateTransactio updateRemoteTransactionDescription(params) .then(res => { if (res.status) { - dispatch({ type: AppActions.Ignore, payload: null }) + dispatch({ + type: NeuronWalletActions.UpdateTransactionDescription, + payload: { + hash: params.hash, + description: params.description, + }, + }) } else { addNotification({ type: 'alert', content: res.message.title })(dispatch) } diff --git a/packages/neuron-ui/src/states/stateProvider/actionCreators/wallets.ts b/packages/neuron-ui/src/states/stateProvider/actionCreators/wallets.ts index f1758f3ba7..6da176aa74 100644 --- a/packages/neuron-ui/src/states/stateProvider/actionCreators/wallets.ts +++ b/packages/neuron-ui/src/states/stateProvider/actionCreators/wallets.ts @@ -163,8 +163,11 @@ export const updateAddressDescription = (params: Controller.UpdateAddressDescrip .then(res => { if (res.status) { dispatch({ - type: AppActions.Ignore, - payload: null, + type: NeuronWalletActions.UpdateAddressDescription, + payload: { + address: params.address, + description: params.description, + }, }) } else { addNotification({ type: 'alert', content: res.message.title })(dispatch) diff --git a/packages/neuron-ui/src/states/stateProvider/reducer.ts b/packages/neuron-ui/src/states/stateProvider/reducer.ts index ace3dc160c..f5d50086a1 100644 --- a/packages/neuron-ui/src/states/stateProvider/reducer.ts +++ b/packages/neuron-ui/src/states/stateProvider/reducer.ts @@ -8,9 +8,11 @@ export enum NeuronWalletActions { UpdateCurrentWallet = 'updateCurrentWallet', UpdateWalletList = 'updateWalletList', UpdateAddressListAndBalance = 'updateAddressListAndBalance', + UpdateAddressDescription = 'updateAddressDescription', // transactions UpdateTransactionList = 'updateTransactionList', UpdateTransaction = 'updateTransaction', + UpdateTransactionDescription = 'updateTransactionDescription', // networks UpdateNetworkList = 'updateNetworkList', UpdateCurrentNetworkID = 'updateCurrentNetworkID', @@ -132,6 +134,23 @@ export const reducer = ( }, } } + case NeuronWalletActions.UpdateAddressDescription: { + /** + * payload:{ + * address: string + * description: string + * } + */ + return { + ...state, + wallet: { + ...wallet, + addresses: wallet.addresses.map(addr => + addr.address === payload.address ? { ...addr, description: payload.description } : addr + ), + }, + } + } case NeuronWalletActions.UpdateAddressListAndBalance: { return { ...state, @@ -150,6 +169,26 @@ export const reducer = ( }, } } + case NeuronWalletActions.UpdateTransactionDescription: { + /** + * payload: { + * hash: string, + * description: string + * } + */ + return { + ...state, + chain: { + ...chain, + transactions: { + ...chain.transactions, + items: chain.transactions.items.map(tx => + tx.hash === payload.hash ? { ...tx, description: payload.description } : tx + ), + }, + }, + } + } case NeuronWalletActions.UpdateTransaction: { return { ...state,