diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/services/content/ServiceDisabled.js | 2 | ||||
-rw-r--r-- | src/components/services/content/WebviewCrashHandler.js | 2 | ||||
-rw-r--r-- | src/components/ui/Subscription.js | 2 | ||||
-rw-r--r-- | src/lib/Menu.js | 42 | ||||
-rw-r--r-- | src/models/Service.js | 11 | ||||
-rw-r--r-- | src/stores/ServicesStore.js | 2 | ||||
-rw-r--r-- | src/styles/services.scss | 6 |
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 @@ | |||
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 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 | } |