aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/layout/AppLayout.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/layout/AppLayout.js')
-rw-r--r--src/components/layout/AppLayout.js27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index e6e5d40fe..0a65dcffa 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -1,8 +1,8 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; 3import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, injectIntl } from 'react-intl';
5import { TitleBar } from 'electron-react-titlebar'; 5import { TitleBar } from 'electron-react-titlebar/renderer';
6import injectSheet from 'react-jss'; 6import injectSheet from 'react-jss';
7 7
8import InfoBar from '../ui/InfoBar'; 8import InfoBar from '../ui/InfoBar';
@@ -27,20 +27,20 @@ function createMarkup(HTMLString) {
27const messages = defineMessages({ 27const messages = defineMessages({
28 servicesUpdated: { 28 servicesUpdated: {
29 id: 'infobar.servicesUpdated', 29 id: 'infobar.servicesUpdated',
30 defaultMessage: '!!!Your services have been updated.', 30 defaultMessage: 'Your services have been updated.',
31 }, 31 },
32 buttonReloadServices: { 32 buttonReloadServices: {
33 id: 'infobar.buttonReloadServices', 33 id: 'infobar.buttonReloadServices',
34 defaultMessage: '!!!Reload services', 34 defaultMessage: 'Reload services',
35 }, 35 },
36 requiredRequestsFailed: { 36 requiredRequestsFailed: {
37 id: 'infobar.requiredRequestsFailed', 37 id: 'infobar.requiredRequestsFailed',
38 defaultMessage: '!!!Could not load services and user information', 38 defaultMessage: 'Could not load services and user information',
39 }, 39 },
40 authRequestFailed: { 40 authRequestFailed: {
41 id: 'infobar.authRequestFailed', 41 id: 'infobar.authRequestFailed',
42 defaultMessage: 42 defaultMessage:
43 '!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.', 43 'There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.',
44 }, 44 },
45}); 45});
46 46
@@ -88,16 +88,13 @@ class AppLayout extends Component {
88 88
89 state = { 89 state = {
90 shouldShowAppUpdateInfoBar: true, 90 shouldShowAppUpdateInfoBar: true,
91 shouldShowServicesUpdatedInfoBar: true,
91 }; 92 };
92 93
93 static defaultProps = { 94 static defaultProps = {
94 children: [], 95 children: [],
95 }; 96 };
96 97
97 static contextTypes = {
98 intl: intlShape,
99 };
100
101 render() { 98 render() {
102 const { 99 const {
103 classes, 100 classes,
@@ -119,7 +116,7 @@ class AppLayout extends Component {
119 areRequiredRequestsLoading, 116 areRequiredRequestsLoading,
120 } = this.props; 117 } = this.props;
121 118
122 const { intl } = this.context; 119 const { intl } = this.props;
123 120
124 return ( 121 return (
125 <ErrorBoundary> 122 <ErrorBoundary>
@@ -179,12 +176,14 @@ class AppLayout extends Component {
179 {intl.formatMessage(messages.authRequestFailed)} 176 {intl.formatMessage(messages.authRequestFailed)}
180 </InfoBar> 177 </InfoBar>
181 )} 178 )}
182 {showServicesUpdatedInfoBar && ( 179 {showServicesUpdatedInfoBar && this.state.shouldShowServicesUpdatedInfoBar && (
183 <InfoBar 180 <InfoBar
184 type="primary" 181 type="primary"
185 ctaLabel={intl.formatMessage(messages.buttonReloadServices)} 182 ctaLabel={intl.formatMessage(messages.buttonReloadServices)}
186 onClick={reloadServicesAfterUpdate} 183 onClick={reloadServicesAfterUpdate}
187 sticky 184 onHide={() => {
185 this.setState({ shouldShowServicesUpdatedInfoBar: false });
186 }}
188 > 187 >
189 <span className="mdi mdi-power-plug" /> 188 <span className="mdi mdi-power-plug" />
190 {intl.formatMessage(messages.servicesUpdated)} 189 {intl.formatMessage(messages.servicesUpdated)}
@@ -213,4 +212,4 @@ class AppLayout extends Component {
213 } 212 }
214} 213}
215 214
216export default AppLayout; 215export default injectIntl(AppLayout);