aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers/layout/AppLayoutContainer.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers/layout/AppLayoutContainer.js')
-rw-r--r--src/containers/layout/AppLayoutContainer.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js
index 749912c59..d2891a6a4 100644
--- a/src/containers/layout/AppLayoutContainer.js
+++ b/src/containers/layout/AppLayoutContainer.js
@@ -20,6 +20,10 @@ import Services from '../../components/services/content/Services';
20import AppLoader from '../../components/ui/AppLoader'; 20import AppLoader from '../../components/ui/AppLoader';
21 21
22import { state as delayAppState } from '../../features/delayApp'; 22import { state as delayAppState } from '../../features/delayApp';
23import { workspaceActions } from '../../features/workspaces/actions';
24import WorkspaceDrawer from '../../features/workspaces/components/WorkspaceDrawer';
25import { workspaceStore } from '../../features/workspaces';
26import { announcementsStore } from '../../features/announcements';
23 27
24export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component { 28export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component {
25 static defaultProps = { 29 static defaultProps = {
@@ -42,6 +46,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
42 setActive, 46 setActive,
43 handleIPCMessage, 47 handleIPCMessage,
44 setWebviewReference, 48 setWebviewReference,
49 detachService,
45 openWindow, 50 openWindow,
46 reorder, 51 reorder,
47 reload, 52 reload,
@@ -81,6 +86,15 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
81 ); 86 );
82 } 87 }
83 88
89 const workspacesDrawer = (
90 <WorkspaceDrawer
91 getServicesForWorkspace={workspace => (
92 workspace ? workspaceStore.getWorkspaceServices(workspace).map(s => s.name) : services.all.map(s => s.name)
93 )}
94 onUpgradeAccountClick={() => openSettings({ path: 'user' })}
95 />
96 );
97
84 const sidebar = ( 98 const sidebar = (
85 <Sidebar 99 <Sidebar
86 services={services.allDisplayed} 100 services={services.allDisplayed}
@@ -95,6 +109,8 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
95 deleteService={deleteService} 109 deleteService={deleteService}
96 updateService={updateService} 110 updateService={updateService}
97 toggleMuteApp={toggleMuteApp} 111 toggleMuteApp={toggleMuteApp}
112 toggleWorkspaceDrawer={workspaceActions.toggleWorkspaceDrawer}
113 isWorkspaceDrawerOpen={workspaceStore.isWorkspaceDrawerOpen}
98 showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted} 114 showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted}
99 showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} 115 showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted}
100 /> 116 />
@@ -105,6 +121,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
105 services={services.allDisplayedUnordered} 121 services={services.allDisplayedUnordered}
106 handleIPCMessage={handleIPCMessage} 122 handleIPCMessage={handleIPCMessage}
107 setWebviewReference={setWebviewReference} 123 setWebviewReference={setWebviewReference}
124 detachService={detachService}
108 openWindow={openWindow} 125 openWindow={openWindow}
109 reload={reload} 126 reload={reload}
110 openSettings={openSettings} 127 openSettings={openSettings}
@@ -119,7 +136,9 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
119 isOnline={app.isOnline} 136 isOnline={app.isOnline}
120 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} 137 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar}
121 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} 138 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED}
139 nextAppReleaseVersion={app.nextAppReleaseVersion}
122 sidebar={sidebar} 140 sidebar={sidebar}
141 workspacesDrawer={workspacesDrawer}
123 services={servicesContainer} 142 services={servicesContainer}
124 news={news.latest} 143 news={news.latest}
125 removeNewsItem={hide} 144 removeNewsItem={hide}
@@ -132,6 +151,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
132 areRequiredRequestsLoading={requests.areRequiredRequestsLoading} 151 areRequiredRequestsLoading={requests.areRequiredRequestsLoading}
133 darkMode={settings.all.app.darkMode} 152 darkMode={settings.all.app.darkMode}
134 isDelayAppScreenVisible={delayAppState.isDelayAppScreenVisible} 153 isDelayAppScreenVisible={delayAppState.isDelayAppScreenVisible}
154 isAnnouncementVisible={announcementsStore.isAnnouncementVisible}
135 > 155 >
136 {React.Children.count(children) > 0 ? children : null} 156 {React.Children.count(children) > 0 ? children : null}
137 </AppLayout> 157 </AppLayout>
@@ -160,6 +180,7 @@ AppLayoutContainer.wrappedComponent.propTypes = {
160 toggleAudio: PropTypes.func.isRequired, 180 toggleAudio: PropTypes.func.isRequired,
161 handleIPCMessage: PropTypes.func.isRequired, 181 handleIPCMessage: PropTypes.func.isRequired,
162 setWebviewReference: PropTypes.func.isRequired, 182 setWebviewReference: PropTypes.func.isRequired,
183 detachService: PropTypes.func.isRequired,
163 openWindow: PropTypes.func.isRequired, 184 openWindow: PropTypes.func.isRequired,
164 reloadUpdatedServices: PropTypes.func.isRequired, 185 reloadUpdatedServices: PropTypes.func.isRequired,
165 updateService: PropTypes.func.isRequired, 186 updateService: PropTypes.func.isRequired,