aboutsummaryrefslogtreecommitdiffstats
path: root/src/models
diff options
context:
space:
mode:
Diffstat (limited to 'src/models')
-rw-r--r--src/models/Service.js23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/models/Service.js b/src/models/Service.js
index 93061c2cf..958e4b11e 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -1,4 +1,4 @@
1import { computed, observable } from 'mobx'; 1import { computed, observable, autorun } from 'mobx';
2import path from 'path'; 2import path from 'path';
3import normalizeUrl from 'normalize-url'; 3import normalizeUrl from 'normalize-url';
4 4
@@ -18,11 +18,13 @@ export default class Service {
18 18
19 @observable order = 99; 19 @observable order = 99;
20 @observable isEnabled = true; 20 @observable isEnabled = true;
21 @observable isMuted = false;
21 @observable team = ''; 22 @observable team = '';
22 @observable customUrl = ''; 23 @observable customUrl = '';
23 @observable isNotificationEnabled = true; 24 @observable isNotificationEnabled = true;
24 @observable isIndirectMessageBadgeEnabled = true; 25 @observable isIndirectMessageBadgeEnabled = true;
25 @observable customIconUrl = ''; 26 @observable customIconUrl = '';
27 @observable hasCrashed = false;
26 28
27 constructor(data, recipe) { 29 constructor(data, recipe) {
28 if (!data) { 30 if (!data) {
@@ -53,7 +55,18 @@ export default class Service {
53 this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined 55 this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined
54 ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; 56 ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled;
55 57
58 this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted;
59
56 this.recipe = recipe; 60 this.recipe = recipe;
61
62 autorun(() => {
63 if (!this.isEnabled) {
64 this.webview = null;
65 this.isAttached = false;
66 this.unreadDirectMessageCount = 0;
67 this.unreadIndirectMessageCount = 0;
68 }
69 });
57 } 70 }
58 71
59 @computed get url() { 72 @computed get url() {
@@ -117,6 +130,14 @@ export default class Service {
117 frameName, 130 frameName,
118 options, 131 options,
119 })); 132 }));
133
134 this.webview.addEventListener('did-start-loading', () => {
135 this.hasCrashed = false;
136 });
137
138 this.webview.addEventListener('crashed', () => {
139 this.hasCrashed = true;
140 });
120 } 141 }
121 142
122 initializeWebViewListener() { 143 initializeWebViewListener() {