aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/services/content
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2017-11-10 15:40:01 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2017-11-10 15:40:01 +0100
commitf39e31af92f3ae6689697685d008f0487a5be351 (patch)
treec00654dbb28817cbfdca8223c1f86d38c706e163 /src/components/services/content
parentfeat(App): Respect System DoNotDisturb mode for service audio (diff)
parentMerge pull request #248 from meetfranz/feature/192-display-disabled-services (diff)
downloadferdium-app-f39e31af92f3ae6689697685d008f0487a5be351.tar.gz
ferdium-app-f39e31af92f3ae6689697685d008f0487a5be351.tar.zst
ferdium-app-f39e31af92f3ae6689697685d008f0487a5be351.zip
Merge branch 'develop' into feature/mute-service
# Conflicts: # src/components/services/content/ServiceWebview.js # src/components/services/content/Services.js # src/components/services/tabs/TabItem.js # src/containers/layout/AppLayoutContainer.js
Diffstat (limited to 'src/components/services/content')
-rw-r--r--src/components/services/content/ServiceDisabled.js48
-rw-r--r--src/components/services/content/ServiceWebview.js13
-rw-r--r--src/components/services/content/Services.js9
-rw-r--r--src/components/services/content/WebviewCrashHandler.js2
4 files changed, 71 insertions, 1 deletions
diff --git a/src/components/services/content/ServiceDisabled.js b/src/components/services/content/ServiceDisabled.js
new file mode 100644
index 000000000..732b6c003
--- /dev/null
+++ b/src/components/services/content/ServiceDisabled.js
@@ -0,0 +1,48 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl';
5
6import Button from '../../ui/Button';
7
8const messages = defineMessages({
9 headline: {
10 id: 'service.disabledHandler.headline',
11 defaultMessage: '!!!{name} is disabled',
12 },
13 action: {
14 id: 'service.disabledHandler.action',
15 defaultMessage: '!!!Enable {name}',
16 },
17});
18
19@observer
20export default class ServiceDisabled extends Component {
21 static propTypes = {
22 name: PropTypes.string.isRequired,
23 enable: PropTypes.func.isRequired,
24 };
25
26 static contextTypes = {
27 intl: intlShape,
28 };
29
30 countdownInterval = null;
31 countdownIntervalTimeout = 1000;
32
33 render() {
34 const { name, enable } = this.props;
35 const { intl } = this.context;
36
37 return (
38 <div className="services__crash-handler">
39 <h1>{intl.formatMessage(messages.headline, { name })}</h1>
40 <Button
41 label={intl.formatMessage(messages.action, { name })}
42 buttonType="inverted"
43 onClick={() => enable()}
44 />
45 </div>
46 );
47 }
48}
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js
index 60bdf7e47..08ba5f33d 100644
--- a/src/components/services/content/ServiceWebview.js
+++ b/src/components/services/content/ServiceWebview.js
@@ -8,6 +8,7 @@ import classnames from 'classnames';
8import ServiceModel from '../../../models/Service'; 8import ServiceModel from '../../../models/Service';
9import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; 9import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl';
10import WebviewCrashHandler from './WebviewCrashHandler'; 10import WebviewCrashHandler from './WebviewCrashHandler';
11import ServiceDisabled from './ServiceDisabled';
11 12
12@observer 13@observer
13export default class ServiceWebview extends Component { 14export default class ServiceWebview extends Component {
@@ -15,7 +16,11 @@ export default class ServiceWebview extends Component {
15 service: PropTypes.instanceOf(ServiceModel).isRequired, 16 service: PropTypes.instanceOf(ServiceModel).isRequired,
16 setWebviewReference: PropTypes.func.isRequired, 17 setWebviewReference: PropTypes.func.isRequired,
17 reload: PropTypes.func.isRequired, 18 reload: PropTypes.func.isRequired,
19<<<<<<< HEAD
18 isAppMuted: PropTypes.bool.isRequired, 20 isAppMuted: PropTypes.bool.isRequired,
21=======
22 enable: PropTypes.func.isRequired,
23>>>>>>> develop
19 }; 24 };
20 25
21 static defaultProps = { 26 static defaultProps = {
@@ -58,6 +63,7 @@ export default class ServiceWebview extends Component {
58 setWebviewReference, 63 setWebviewReference,
59 reload, 64 reload,
60 isAppMuted, 65 isAppMuted,
66 enable,
61 } = this.props; 67 } = this.props;
62 68
63 const webviewClasses = classnames({ 69 const webviewClasses = classnames({
@@ -82,6 +88,13 @@ export default class ServiceWebview extends Component {
82 reload={reload} 88 reload={reload}
83 /> 89 />
84 )} 90 )}
91 {!service.isEnabled && (
92 <ServiceDisabled
93 name={service.recipe.name}
94 webview={service.webview}
95 enable={enable}
96 />
97 )}
85 <Webview 98 <Webview
86 ref={(element) => { this.webview = element; }} 99 ref={(element) => { this.webview = element; }}
87 autosize 100 autosize
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js
index 55a47cdd3..b1322afc2 100644
--- a/src/components/services/content/Services.js
+++ b/src/components/services/content/Services.js
@@ -27,6 +27,7 @@ export default class Services extends Component {
27 openWindow: PropTypes.func.isRequired, 27 openWindow: PropTypes.func.isRequired,
28 reload: PropTypes.func.isRequired, 28 reload: PropTypes.func.isRequired,
29 isAppMuted: PropTypes.bool.isRequired, 29 isAppMuted: PropTypes.bool.isRequired,
30 update: PropTypes.func.isRequired,
30 }; 31 };
31 32
32 static defaultProps = { 33 static defaultProps = {
@@ -46,6 +47,7 @@ export default class Services extends Component {
46 openWindow, 47 openWindow,
47 reload, 48 reload,
48 isAppMuted, 49 isAppMuted,
50 update,
49 } = this.props; 51 } = this.props;
50 const { intl } = this.context; 52 const { intl } = this.context;
51 53
@@ -79,6 +81,13 @@ export default class Services extends Component {
79 openWindow={openWindow} 81 openWindow={openWindow}
80 reload={() => reload({ serviceId: service.id })} 82 reload={() => reload({ serviceId: service.id })}
81 isAppMuted={isAppMuted} 83 isAppMuted={isAppMuted}
84 enable={() => update({
85 serviceId: service.id,
86 serviceData: {
87 isEnabled: true,
88 },
89 redirect: false,
90 })}
82 /> 91 />
83 ))} 92 ))}
84 </div> 93 </div>
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js
index 24903f3c5..d48152c18 100644
--- a/src/components/services/content/WebviewCrashHandler.js
+++ b/src/components/services/content/WebviewCrashHandler.js
@@ -25,7 +25,7 @@ const messages = defineMessages({
25}); 25});
26 26
27@observer 27@observer
28export default class ServiceWebview extends Component { 28export default class WebviewCrashHandler extends Component {
29 static propTypes = { 29 static propTypes = {
30 name: PropTypes.string.isRequired, 30 name: PropTypes.string.isRequired,
31 reload: PropTypes.func.isRequired, 31 reload: PropTypes.func.isRequired,