diff options
-rw-r--r-- | src/components/services/content/ServiceDisabled.js | 2 | ||||
-rw-r--r-- | src/components/services/content/WebviewCrashHandler.js | 2 | ||||
-rw-r--r-- | src/models/Service.js | 11 | ||||
-rw-r--r-- | src/stores/ServicesStore.js | 2 | ||||
-rw-r--r-- | src/styles/services.scss | 6 |
5 files changed, 17 insertions, 6 deletions
diff --git a/src/components/services/content/ServiceDisabled.js b/src/components/services/content/ServiceDisabled.js index 732b6c003..b5af3743d 100644 --- a/src/components/services/content/ServiceDisabled.js +++ b/src/components/services/content/ServiceDisabled.js | |||
@@ -35,7 +35,7 @@ export default class ServiceDisabled extends Component { | |||
35 | const { intl } = this.context; | 35 | const { intl } = this.context; |
36 | 36 | ||
37 | return ( | 37 | return ( |
38 | <div className="services__crash-handler"> | 38 | <div className="services__info-layer"> |
39 | <h1>{intl.formatMessage(messages.headline, { name })}</h1> | 39 | <h1>{intl.formatMessage(messages.headline, { name })}</h1> |
40 | <Button | 40 | <Button |
41 | label={intl.formatMessage(messages.action, { name })} | 41 | label={intl.formatMessage(messages.action, { name })} |
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js index d48152c18..d3e6951f3 100644 --- a/src/components/services/content/WebviewCrashHandler.js +++ b/src/components/services/content/WebviewCrashHandler.js | |||
@@ -62,7 +62,7 @@ export default class WebviewCrashHandler extends Component { | |||
62 | const { intl } = this.context; | 62 | const { intl } = this.context; |
63 | 63 | ||
64 | return ( | 64 | return ( |
65 | <div className="services__crash-handler"> | 65 | <div className="services__info-layer"> |
66 | <h1>{intl.formatMessage(messages.headline)}</h1> | 66 | <h1>{intl.formatMessage(messages.headline)}</h1> |
67 | <p>{intl.formatMessage(messages.text, { name })}</p> | 67 | <p>{intl.formatMessage(messages.text, { name })}</p> |
68 | <Button | 68 | <Button |
diff --git a/src/models/Service.js b/src/models/Service.js index eb68493fe..d0985969b 100644 --- a/src/models/Service.js +++ b/src/models/Service.js | |||
@@ -1,4 +1,4 @@ | |||
1 | import { computed, observable } from 'mobx'; | 1 | import { computed, observable, autorun } from 'mobx'; |
2 | import path from 'path'; | 2 | import path from 'path'; |
3 | import normalizeUrl from 'normalize-url'; | 3 | import normalizeUrl from 'normalize-url'; |
4 | 4 | ||
@@ -58,6 +58,15 @@ export default class Service { | |||
58 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; | 58 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; |
59 | 59 | ||
60 | 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 | }); | ||
61 | } | 70 | } |
62 | 71 | ||
63 | @computed get url() { | 72 | @computed get url() { |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 87d31c0c5..9af5d81da 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -547,6 +547,8 @@ export default class ServicesStore extends Store { | |||
547 | 547 | ||
548 | if (service) { | 548 | if (service) { |
549 | const loop = () => { | 549 | const loop = () => { |
550 | if (!service.webview) return; | ||
551 | |||
550 | service.webview.send('poll'); | 552 | service.webview.send('poll'); |
551 | 553 | ||
552 | setTimeout(loop, delay); | 554 | setTimeout(loop, delay); |
diff --git a/src/styles/services.scss b/src/styles/services.scss index 2a6540e0b..282c15121 100644 --- a/src/styles/services.scss +++ b/src/styles/services.scss | |||
@@ -13,7 +13,7 @@ | |||
13 | } | 13 | } |
14 | 14 | ||
15 | .services__webview, | 15 | .services__webview, |
16 | .services__crash-handler { | 16 | .services__info-layer { |
17 | position: absolute; | 17 | position: absolute; |
18 | width: 100%; | 18 | width: 100%; |
19 | top: 0; | 19 | top: 0; |
@@ -44,7 +44,7 @@ | |||
44 | } | 44 | } |
45 | 45 | ||
46 | .services__no-service, | 46 | .services__no-service, |
47 | .services__crash-handler { | 47 | .services__info-layer { |
48 | display: flex; | 48 | display: flex; |
49 | flex-direction: column; | 49 | flex-direction: column; |
50 | justify-content: center; | 50 | justify-content: center; |
@@ -63,7 +63,7 @@ | |||
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | .services__crash-handler { | 66 | .services__info-layer { |
67 | position: absolut; | 67 | position: absolut; |
68 | z-index: 110; | 68 | z-index: 110; |
69 | } | 69 | } |