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.js24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index 200777ae6..e82275b9f 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -6,7 +6,6 @@ import { TitleBar } from 'electron-react-titlebar';
6import injectSheet from 'react-jss'; 6import injectSheet from 'react-jss';
7 7
8import InfoBar from '../ui/InfoBar'; 8import InfoBar from '../ui/InfoBar';
9import { Component as DelayApp } from '../../features/delayApp';
10import { Component as BasicAuth } from '../../features/basicAuth'; 9import { Component as BasicAuth } from '../../features/basicAuth';
11import { Component as ShareFranz } from '../../features/shareFranz'; 10import { Component as ShareFranz } from '../../features/shareFranz';
12import ErrorBoundary from '../util/ErrorBoundary'; 11import ErrorBoundary from '../util/ErrorBoundary';
@@ -37,6 +36,10 @@ const messages = defineMessages({
37 id: 'infobar.requiredRequestsFailed', 36 id: 'infobar.requiredRequestsFailed',
38 defaultMessage: '!!!Could not load services and user information', 37 defaultMessage: '!!!Could not load services and user information',
39 }, 38 },
39 authRequestFailed: {
40 id: 'infobar.authRequestFailed',
41 defaultMessage: '!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.',
42 },
40}); 43});
41 44
42const styles = theme => ({ 45const styles = theme => ({
@@ -63,6 +66,7 @@ class AppLayout extends Component {
63 showServicesUpdatedInfoBar: PropTypes.bool.isRequired, 66 showServicesUpdatedInfoBar: PropTypes.bool.isRequired,
64 appUpdateIsDownloaded: PropTypes.bool.isRequired, 67 appUpdateIsDownloaded: PropTypes.bool.isRequired,
65 nextAppReleaseVersion: PropTypes.string, 68 nextAppReleaseVersion: PropTypes.string,
69 authRequestFailed: PropTypes.bool.isRequired,
66 removeNewsItem: PropTypes.func.isRequired, 70 removeNewsItem: PropTypes.func.isRequired,
67 reloadServicesAfterUpdate: PropTypes.func.isRequired, 71 reloadServicesAfterUpdate: PropTypes.func.isRequired,
68 installAppUpdate: PropTypes.func.isRequired, 72 installAppUpdate: PropTypes.func.isRequired,
@@ -70,7 +74,6 @@ class AppLayout extends Component {
70 areRequiredRequestsSuccessful: PropTypes.bool.isRequired, 74 areRequiredRequestsSuccessful: PropTypes.bool.isRequired,
71 retryRequiredRequests: PropTypes.func.isRequired, 75 retryRequiredRequests: PropTypes.func.isRequired,
72 areRequiredRequestsLoading: PropTypes.bool.isRequired, 76 areRequiredRequestsLoading: PropTypes.bool.isRequired,
73 isDelayAppScreenVisible: PropTypes.bool.isRequired,
74 hasActivatedTrial: PropTypes.bool.isRequired, 77 hasActivatedTrial: PropTypes.bool.isRequired,
75 }; 78 };
76 79
@@ -95,6 +98,7 @@ class AppLayout extends Component {
95 showServicesUpdatedInfoBar, 98 showServicesUpdatedInfoBar,
96 appUpdateIsDownloaded, 99 appUpdateIsDownloaded,
97 nextAppReleaseVersion, 100 nextAppReleaseVersion,
101 authRequestFailed,
98 removeNewsItem, 102 removeNewsItem,
99 reloadServicesAfterUpdate, 103 reloadServicesAfterUpdate,
100 installAppUpdate, 104 installAppUpdate,
@@ -102,7 +106,6 @@ class AppLayout extends Component {
102 areRequiredRequestsSuccessful, 106 areRequiredRequestsSuccessful,
103 retryRequiredRequests, 107 retryRequiredRequests,
104 areRequiredRequestsLoading, 108 areRequiredRequestsLoading,
105 isDelayAppScreenVisible,
106 hasActivatedTrial, 109 hasActivatedTrial,
107 } = this.props; 110 } = this.props;
108 111
@@ -111,7 +114,7 @@ class AppLayout extends Component {
111 return ( 114 return (
112 <ErrorBoundary> 115 <ErrorBoundary>
113 <div className="app"> 116 <div className="app">
114 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon="assets/images/logo.svg" />} 117 {isWindows && !isFullScreen && <TitleBar menu={window.ferdi.menu.template} icon="assets/images/logo.svg" />}
115 <div className={`app__content ${classes.appContent}`}> 118 <div className={`app__content ${classes.appContent}`}>
116 {workspacesDrawer} 119 {workspacesDrawer}
117 {sidebar} 120 {sidebar}
@@ -151,6 +154,18 @@ class AppLayout extends Component {
151 {intl.formatMessage(messages.requiredRequestsFailed)} 154 {intl.formatMessage(messages.requiredRequestsFailed)}
152 </InfoBar> 155 </InfoBar>
153 )} 156 )}
157 {authRequestFailed && (
158 <InfoBar
159 type="danger"
160 ctaLabel="Try again"
161 ctaLoading={areRequiredRequestsLoading}
162 sticky
163 onClick={retryRequiredRequests}
164 >
165 <span className="mdi mdi-flash" />
166 {intl.formatMessage(messages.authRequestFailed)}
167 </InfoBar>
168 )}
154 {showServicesUpdatedInfoBar && ( 169 {showServicesUpdatedInfoBar && (
155 <InfoBar 170 <InfoBar
156 type="primary" 171 type="primary"
@@ -168,7 +183,6 @@ class AppLayout extends Component {
168 onInstallUpdate={installAppUpdate} 183 onInstallUpdate={installAppUpdate}
169 /> 184 />
170 )} 185 )}
171 {isDelayAppScreenVisible && (<DelayApp />)}
172 <BasicAuth /> 186 <BasicAuth />
173 <ShareFranz /> 187 <ShareFranz />
174 {services} 188 {services}