aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Gustavo Sampaio <gbritosampaio@gmail.com>2017-10-27 22:35:44 -0300
committerLibravatar Gustavo Sampaio <gbritosampaio@gmail.com>2017-10-27 22:35:44 -0300
commit47681c90b0067d8b979f1a88253973fea49741bc (patch)
treee2e9b9b6bcda72dec5898b2b2d0e06733f8adb20
parentMerge pull request #152 from meetfranz/chore/travis-setup (diff)
downloadferdium-app-47681c90b0067d8b979f1a88253973fea49741bc.tar.gz
ferdium-app-47681c90b0067d8b979f1a88253973fea49741bc.tar.zst
ferdium-app-47681c90b0067d8b979f1a88253973fea49741bc.zip
Add onNotify event to let recipes update/change notifications before send them.
Add additional checks in ServiceStore.
-rw-r--r--src/stores/ServicesStore.js5
-rw-r--r--src/webview/lib/RecipeWebview.js6
-rw-r--r--src/webview/notifications.js8
3 files changed, 15 insertions, 4 deletions
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 4510146e0..7e797ce55 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -295,9 +295,12 @@ export default class ServicesStore extends Store {
295 } 295 }
296 296
297 if (service.isNotificationEnabled) { 297 if (service.isNotificationEnabled) {
298 const title = typeof args[0].title === 'string' ? args[0].title : service.name;
299 options.body = typeof options.body === 'string' ? options.body : '';
300
298 this.actions.app.notify({ 301 this.actions.app.notify({
299 notificationId: args[0].notificationId, 302 notificationId: args[0].notificationId,
300 title: args[0].title, 303 title,
301 options, 304 options,
302 serviceId, 305 serviceId,
303 }); 306 });
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js
index 1787f85e2..b8acc1258 100644
--- a/src/webview/lib/RecipeWebview.js
+++ b/src/webview/lib/RecipeWebview.js
@@ -64,6 +64,12 @@ class RecipeWebview {
64 }); 64 });
65 } 65 }
66 66
67 onNotify(fn) {
68 if (typeof fn === 'function') {
69 window.Notification.onNotify = fn;
70 }
71 }
72
67 initialize(fn) { 73 initialize(fn) {
68 if (typeof fn === 'function') { 74 if (typeof fn === 'function') {
69 fn(); 75 fn();
diff --git a/src/webview/notifications.js b/src/webview/notifications.js
index 97ce9d69b..b3397148d 100644
--- a/src/webview/notifications.js
+++ b/src/webview/notifications.js
@@ -7,13 +7,13 @@ class Notification {
7 this.title = title; 7 this.title = title;
8 this.options = options; 8 this.options = options;
9 this.notificationId = uuidV1(); 9 this.notificationId = uuidV1();
10 this.onclick = () => {}; 10 this.onclick = () => { };
11 11
12 ipcRenderer.sendToHost('notification', { 12 ipcRenderer.sendToHost('notification', Notification.onNotify({
13 notificationId: this.notificationId, 13 notificationId: this.notificationId,
14 title, 14 title,
15 options, 15 options,
16 }); 16 }));
17 17
18 ipcRenderer.on(`notification-onclick:${this.notificationId}`, () => { 18 ipcRenderer.on(`notification-onclick:${this.notificationId}`, () => {
19 this.onclick(); 19 this.onclick();
@@ -42,4 +42,6 @@ Notification.close = () => {
42 // no implementation yet 42 // no implementation yet
43}; 43};
44 44
45Notification.onNotify = data => data;
46
45window.Notification = Notification; 47window.Notification = Notification;