aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/services/content/ServiceDisabled.js2
-rw-r--r--src/components/services/content/WebviewCrashHandler.js2
-rw-r--r--src/components/ui/Subscription.js2
-rw-r--r--src/lib/Menu.js42
-rw-r--r--src/models/Service.js11
-rw-r--r--src/stores/ServicesStore.js2
-rw-r--r--src/styles/services.scss6
7 files changed, 35 insertions, 32 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/components/ui/Subscription.js b/src/components/ui/Subscription.js
index 80ee2d9d2..7f4c53d64 100644
--- a/src/components/ui/Subscription.js
+++ b/src/components/ui/Subscription.js
@@ -154,7 +154,7 @@ export default class SubscriptionForm extends Component {
154 }, 154 },
155 }; 155 };
156 156
157 if (!isWindows) { 157 if (this.props.plan.miner) {
158 form.fields.paymentTier.options.push({ 158 form.fields.paymentTier.options.push({
159 value: 'mining', 159 value: 'mining',
160 label: intl.formatMessage(messages.typeMining), 160 label: intl.formatMessage(messages.typeMining),
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 8f0a92c3d..6624ab75e 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -214,30 +214,6 @@ export default class FranzMenu {
214 ], 214 ],
215 }, 215 },
216 ); 216 );
217 // Window menu.
218 tpl[3].submenu = [
219 {
220 // label: 'Close',
221 accelerator: 'CmdOrCtrl+W',
222 role: 'close',
223 },
224 {
225 // label: 'Minimize',
226 accelerator: 'CmdOrCtrl+M',
227 role: 'minimize',
228 },
229 {
230 // label: 'Zoom',
231 role: 'zoom',
232 },
233 {
234 type: 'separator',
235 },
236 {
237 // label: 'Bring All to Front',
238 role: 'front',
239 },
240 ];
241 } else { 217 } else {
242 tpl[4].submenu.unshift({ 218 tpl[4].submenu.unshift({
243 role: 'about', 219 role: 'about',
@@ -277,7 +253,7 @@ export default class FranzMenu {
277 253
278 if (this.stores.user.isLoggedIn) { 254 if (this.stores.user.isLoggedIn) {
279 return services.map((service, i) => ({ 255 return services.map((service, i) => ({
280 label: service.name, 256 label: this._getServiceName(service),
281 accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, 257 accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null,
282 type: 'radio', 258 type: 'radio',
283 checked: service.isActive, 259 checked: service.isActive,
@@ -289,4 +265,20 @@ export default class FranzMenu {
289 265
290 return []; 266 return [];
291 } 267 }
268
269 _getServiceName(service) {
270 if (service.name) {
271 return service.name;
272 }
273
274 let name = service.recipe.name;
275
276 if (service.team) {
277 name = `${name} (${service.team})`;
278 } else if (service.customUrl) {
279 name = `${name} (${service.customUrl})`;
280 }
281
282 return name;
283 }
292} 284}
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 @@
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
@@ -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 3936ea036..22c376c06 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -549,6 +549,8 @@ export default class ServicesStore extends Store {
549 549
550 if (service) { 550 if (service) {
551 const loop = () => { 551 const loop = () => {
552 if (!service.webview) return;
553
552 service.webview.send('poll'); 554 service.webview.send('poll');
553 555
554 setTimeout(loop, delay); 556 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 }