diff --git a/app/notifications/index.js b/app/notifications/index.js new file mode 100644 index 00000000..3e311921 --- /dev/null +++ b/app/notifications/index.js @@ -0,0 +1,8 @@ +export default { + showNotification: (title, body, onClick) => { + new Notification(title, { + body, + onClick + }) + } +} \ No newline at end of file diff --git a/app/reducers/transaction.js b/app/reducers/transaction.js index 1b5e590c..af68557f 100644 --- a/app/reducers/transaction.js +++ b/app/reducers/transaction.js @@ -1,4 +1,5 @@ import { ipcRenderer } from 'electron' +import { showNotification } from '../notifications' import { btc, usd } from '../utils' import { setForm, resetForm } from './form' import { showModal } from './modal' @@ -69,6 +70,12 @@ export const transactionError = () => (dispatch) => { // Listener for when a new transaction is pushed from the subscriber export const newTransaction = (event, { transaction }) => (dispatch) => { dispatch({ type: ADD_TRANSACTION, transaction }) + + // HTML 5 desktop notification for the new transaction + const notifTitle = transaction.amount > 0 ? `On-chain Transaction Received!` : `On-chain Transaction Sent!` + const notifBody = transaction.amount > 0 ? `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) }