@@ -40,16 +40,22 @@ const messages = defineMessages({
4040const styles = theme => ( {
4141 drawer : {
4242 background : theme . workspaces . drawer . background ,
43- width : `${ theme . workspaces . drawer . width } px` ,
4443 display : 'flex' ,
4544 flexDirection : 'column' ,
4645 } ,
46+ drawerWithText : {
47+ width : `${ theme . workspaces . drawer . width } px` ,
48+ } ,
4749 headline : {
4850 fontSize : '24px' ,
4951 marginTop : '38px' ,
5052 marginBottom : '25px' ,
5153 marginLeft : theme . workspaces . drawer . padding ,
5254 } ,
55+ headlineWithicon : {
56+ marginLeft : '0' ,
57+ color : theme . workspaces . drawer . buttons . color ,
58+ } ,
5359 workspacesSettingsButton : {
5460 float : 'right' ,
5561 marginRight : theme . workspaces . drawer . padding ,
@@ -90,6 +96,7 @@ const styles = theme => ({
9096
9197interface IProps extends WithStylesProps < typeof styles > , WrappedComponentProps {
9298 getServicesForWorkspace : ( workspace : Workspace | null ) => string [ ] ;
99+ useIconDisplayStyle : boolean ;
93100}
94101
95102@observer
@@ -104,19 +111,24 @@ class WorkspaceDrawer extends Component<IProps> {
104111 }
105112
106113 render ( ) : ReactElement {
107- const { classes, getServicesForWorkspace } = this . props ;
114+ const { classes, getServicesForWorkspace, useIconDisplayStyle } =
115+ this . props ;
108116 const { intl } = this . props ;
109117 const { activeWorkspace, isSwitchingWorkspace, nextWorkspace, workspaces } =
110118 workspaceStore ;
111119 const actualWorkspace = isSwitchingWorkspace
112120 ? nextWorkspace
113121 : activeWorkspace ;
122+
123+ const drawerWithClass = useIconDisplayStyle
124+ ? 'drawerWithIconWidth'
125+ : classes . drawerWithText ;
114126 return (
115- < div className = { `${ classes . drawer } workspaces-drawer` } >
116- < H1 className = { classes . headline } >
117- { intl . formatMessage ( messages . headline ) }
118- < span
119- className = { classes . workspacesSettingsButton }
127+ < div className = { `${ classes . drawer } ${ drawerWithClass } workspaces-drawer` } >
128+ { useIconDisplayStyle ? (
129+ < button
130+ type = "button"
131+ className = { ` ${ classes . headline } ${ classes . headlineWithicon } ` }
120132 onKeyDown = { noop }
121133 onClick = { ( ) => {
122134 workspaceActions . openWorkspaceSettings ( ) ;
@@ -130,11 +142,34 @@ class WorkspaceDrawer extends Component<IProps> {
130142 size = { 1.5 }
131143 className = { classes . workspacesSettingsButtonIcon }
132144 />
133- </ span >
134- </ H1 >
145+ </ button >
146+ ) : (
147+ < H1 className = { classes . headline } >
148+ { intl . formatMessage ( messages . headline ) }
149+ < span
150+ className = { classes . workspacesSettingsButton }
151+ onKeyDown = { noop }
152+ onClick = { ( ) => {
153+ workspaceActions . openWorkspaceSettings ( ) ;
154+ } }
155+ data-tip = { `${ intl . formatMessage (
156+ messages . workspacesSettingsTooltip ,
157+ ) } `}
158+ >
159+ < Icon
160+ icon = { mdiCog }
161+ size = { 1.5 }
162+ className = { classes . workspacesSettingsButtonIcon }
163+ />
164+ </ span >
165+ </ H1 >
166+ ) }
167+
135168 < div className = { classes . workspaces } >
136169 < WorkspaceDrawerItem
137170 name = { intl . formatMessage ( messages . allServices ) }
171+ iconUrl = "allServices"
172+ useIconDisplayStyle = { useIconDisplayStyle }
138173 onClick = { ( ) => {
139174 workspaceActions . deactivate ( ) ;
140175 workspaceActions . toggleWorkspaceDrawer ( ) ;
@@ -147,6 +182,8 @@ class WorkspaceDrawer extends Component<IProps> {
147182 < WorkspaceDrawerItem
148183 key = { workspace . id }
149184 name = { workspace . name }
185+ iconUrl = { workspace . iconUrl }
186+ useIconDisplayStyle = { useIconDisplayStyle }
150187 isActive = { actualWorkspace === workspace }
151188 onClick = { ( ) => {
152189 if ( actualWorkspace === workspace ) {
@@ -171,9 +208,12 @@ class WorkspaceDrawer extends Component<IProps> {
171208 >
172209 < Icon
173210 icon = { mdiPlusBox }
211+ size = { useIconDisplayStyle ? 1.5 : 1 }
174212 className = { classes . workspacesSettingsButtonIcon }
175213 />
176- < span > { intl . formatMessage ( messages . addNewWorkspaceLabel ) } </ span >
214+ { useIconDisplayStyle !== true && (
215+ < span > { intl . formatMessage ( messages . addNewWorkspaceLabel ) } </ span >
216+ ) } { ' ' }
177217 </ div >
178218 </ div >
179219 < ReactTooltip place = "right" type = "dark" effect = "solid" />
0 commit comments