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
export const newTransaction = (event, { transaction }) => dispatch => {
// Fetch new balance
dispatch(fetchBalance())
decorateTransaction(transaction)
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."
export const newTransaction = (event, { transaction }) => (dispatch, getState) => {
// add the transaction only if we are not already aware of it
if (!getState().transactions.find(tx => tx.tx_hash === transaction.tx_hash)) {
// Fetch new balance
dispatch(fetchBalance())
showNotification(notifTitle, notifBody)
decorateTransaction(transaction)
// Generate a new address
dispatch(newAddress('np2wkh'))
dispatch({ type: ADD_TRANSACTION, transaction })
// 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_FAILED]: state => ({ ...state, sendingTransaction: false }),
[ADD_TRANSACTION]: (state, { transaction }) => {
// add the transaction only if we are not already aware of it
return state.transactions.find(tx => tx.tx_hash === transaction.tx_hash)
? state
: {
...state,
transactions: [transaction, ...state.transactions]
}
},
[ADD_TRANSACTION]: (state, { transaction }) => ({
...state,
transactions: [transaction, ...state.transactions]
}),
[SHOW_SUCCESS_TRANSACTION_SCREEN]: (state, { txid }) => ({
...state,
successTransactionScreen: { show: true, txid }

Loading…
Cancel
Save