Browse Source

Merge pull request #575 from Empact/fix/duplicate-transaction-notification

fix: only notify if we have not seen the transaction before
renovate/lint-staged-8.x
Ben Woosley 7 years ago
committed by GitHub
parent
commit
60dd6644a5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 53
      app/reducers/transaction.js

53
app/reducers/transaction.js

@ -121,26 +121,30 @@ export const transactionError = (event, { error }) => dispatch => {
} }
// Listener for when a new transaction is pushed from the subscriber // Listener for when a new transaction is pushed from the subscriber
export const newTransaction = (event, { transaction }) => dispatch => { export const newTransaction = (event, { transaction }) => (dispatch, getState) => {
// Fetch new balance // add the transaction only if we are not already aware of it
dispatch(fetchBalance()) if (!getState().transactions.find(tx => tx.tx_hash === transaction.tx_hash)) {
// Fetch new balance
decorateTransaction(transaction) dispatch(fetchBalance())
dispatch({ type: ADD_TRANSACTION, transaction })
// HTML 5 desktop notification for the new transaction
const notifTitle = transaction.received
? 'On-chain Transaction Received!'
: 'On-chain Transaction Sent!'
const notifBody = transaction.received
? "Lucky you, you just received a new on-chain transaction. I'm jealous."
: "Hate to see 'em go but love to watch 'em leave. Your on-chain transaction successfully sent."
showNotification(notifTitle, notifBody) decorateTransaction(transaction)
// Generate a new address dispatch({ type: ADD_TRANSACTION, transaction })
dispatch(newAddress('np2wkh'))
// HTML 5 desktop notification for the new transaction
if (transaction.received) {
showNotification(
'On-chain Transaction Received!',
"Lucky you, you just received a new on-chain transaction. I'm jealous."
)
dispatch(newAddress('np2wkh')) // Generate a new address
} else {
showNotification(
'On-chain Transaction Sent!',
"Hate to see 'em go but love to watch 'em leave. Your on-chain transaction successfully sent."
)
}
}
} }
// ------------------------------------ // ------------------------------------
@ -156,15 +160,10 @@ const ACTION_HANDLERS = {
}), }),
[TRANSACTION_SUCCESSFULL]: state => ({ ...state, sendingTransaction: false }), [TRANSACTION_SUCCESSFULL]: state => ({ ...state, sendingTransaction: false }),
[TRANSACTION_FAILED]: state => ({ ...state, sendingTransaction: false }), [TRANSACTION_FAILED]: state => ({ ...state, sendingTransaction: false }),
[ADD_TRANSACTION]: (state, { transaction }) => { [ADD_TRANSACTION]: (state, { transaction }) => ({
// add the transaction only if we are not already aware of it ...state,
return state.transactions.find(tx => tx.tx_hash === transaction.tx_hash) transactions: [transaction, ...state.transactions]
? state }),
: {
...state,
transactions: [transaction, ...state.transactions]
}
},
[SHOW_SUCCESS_TRANSACTION_SCREEN]: (state, { txid }) => ({ [SHOW_SUCCESS_TRANSACTION_SCREEN]: (state, { txid }) => ({
...state, ...state,
successTransactionScreen: { show: true, txid } successTransactionScreen: { show: true, txid }

Loading…
Cancel
Save