aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/layout/Sidebar.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/layout/Sidebar.js')
-rw-r--r--src/components/layout/Sidebar.js140
1 files changed, 64 insertions, 76 deletions
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index 4f67a8719..e3df9c2ea 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -3,12 +3,10 @@ import PropTypes from 'prop-types';
3import ReactTooltip from 'react-tooltip'; 3import ReactTooltip from 'react-tooltip';
4import { defineMessages, injectIntl } from 'react-intl'; 4import { defineMessages, injectIntl } from 'react-intl';
5import { inject, observer } from 'mobx-react'; 5import { inject, observer } from 'mobx-react';
6import { Link } from 'react-router';
7import { 6import {
8 mdiCheckAll, 7 mdiCheckAll,
9 mdiViewGrid, 8 mdiViewGrid,
10 mdiPlusBox, 9 mdiPlusBox,
11 mdiLoginVariant,
12 mdiCog, 10 mdiCog,
13 mdiBellOff, 11 mdiBellOff,
14 mdiBell, 12 mdiBell,
@@ -137,7 +135,6 @@ class Sidebar extends Component {
137 const workspaceToggleMessage = isWorkspaceDrawerOpen 135 const workspaceToggleMessage = isWorkspaceDrawerOpen
138 ? messages.closeWorkspaceDrawer 136 ? messages.closeWorkspaceDrawer
139 : messages.openWorkspaceDrawer; 137 : messages.openWorkspaceDrawer;
140 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
141 138
142 return ( 139 return (
143 <div className="sidebar"> 140 <div className="sidebar">
@@ -147,95 +144,86 @@ class Sidebar extends Component {
147 disableToolTip={() => this.disableToolTip()} 144 disableToolTip={() => this.disableToolTip()}
148 useVerticalStyle={stores.settings.all.app.useVerticalStyle} 145 useVerticalStyle={stores.settings.all.app.useVerticalStyle}
149 /> 146 />
150 {isLoggedIn ? ( 147 <>
151 <> 148 <button
152 {stores.settings.all.app.lockingFeatureEnabled ? ( 149 type="button"
153 <button 150 onClick={() => openSettings({ path: 'recipes' })}
154 type="button" 151 className="sidebar__button sidebar__button--new-service"
155 className="sidebar__button" 152 data-tip={`${intl.formatMessage(
156 onClick={() => { 153 messages.addNewService,
157 actions.settings.update({ 154 )} (${addNewServiceShortcutKey(false)})`}
158 type: 'app', 155 >
159 data: { 156 <Icon icon={mdiPlusBox} size={1.5} />
160 locked: true, 157 </button>
161 }, 158 <button
162 }); 159 type="button"
163 }} 160 onClick={() => {
164 data-tip={`${intl.formatMessage( 161 toggleWorkspaceDrawer();
165 messages.lockFerdi, 162 this.updateToolTip();
166 )} (${lockFerdiShortcutKey(false)})`} 163 }}
167 > 164 className={`sidebar__button sidebar__button--workspaces ${
168 <Icon icon={mdiLock} size={1.5} /> 165 isWorkspaceDrawerOpen ? 'is-active' : ''
169 </button> 166 }`}
170 ) : null} 167 data-tip={`${intl.formatMessage(
171 {todosStore.isFeatureEnabledByUser ? ( 168 workspaceToggleMessage,
172 <button 169 )} (${workspaceToggleShortcutKey(false)})`}
173 type="button" 170 >
174 onClick={() => { 171 <Icon icon={mdiViewGrid} size={1.5} />
175 todoActions.toggleTodosPanel(); 172 </button>
176 this.updateToolTip(); 173 {todosStore.isFeatureEnabledByUser ? (
177 }}
178 disabled={isTodosServiceActive}
179 className={`sidebar__button sidebar__button--todos ${
180 todosStore.isTodosPanelVisible ? 'is-active' : ''
181 }`}
182 data-tip={`${intl.formatMessage(
183 todosToggleMessage,
184 )} (${todosToggleShortcutKey(false)})`}
185 >
186 <Icon icon={mdiCheckAll} size={1.5} />
187 </button>
188 ) : null}
189 <button 174 <button
190 type="button" 175 type="button"
191 onClick={() => { 176 onClick={() => {
192 toggleWorkspaceDrawer(); 177 todoActions.toggleTodosPanel();
193 this.updateToolTip(); 178 this.updateToolTip();
194 }} 179 }}
195 className={`sidebar__button sidebar__button--workspaces ${ 180 disabled={isTodosServiceActive}
196 isWorkspaceDrawerOpen ? 'is-active' : '' 181 className={`sidebar__button sidebar__button--todos ${
182 todosStore.isTodosPanelVisible ? 'is-active' : ''
197 }`} 183 }`}
198 data-tip={`${intl.formatMessage( 184 data-tip={`${intl.formatMessage(
199 workspaceToggleMessage, 185 todosToggleMessage,
200 )} (${workspaceToggleShortcutKey(false)})`} 186 )} (${todosToggleShortcutKey(false)})`}
201 > 187 >
202 <Icon icon={mdiViewGrid} size={1.5} /> 188 <Icon icon={mdiCheckAll} size={1.5} />
203 </button> 189 </button>
190 ) : null}
191 <button
192 type="button"
193 onClick={() => {
194 toggleMuteApp();
195 this.updateToolTip();
196 }}
197 className={`sidebar__button sidebar__button--audio ${
198 isAppMuted ? 'is-muted' : ''
199 }`}
200 data-tip={`${intl.formatMessage(
201 isAppMuted ? messages.unmute : messages.mute,
202 )} (${muteFerdiShortcutKey(false)})`}
203 >
204 <Icon icon={isAppMuted ? mdiBellOff : mdiBell} size={1.5} />
205 </button>
206
207 {stores.settings.all.app.lockingFeatureEnabled ? (
204 <button 208 <button
205 type="button" 209 type="button"
210 className="sidebar__button"
206 onClick={() => { 211 onClick={() => {
207 toggleMuteApp(); 212 actions.settings.update({
208 this.updateToolTip(); 213 type: 'app',
214 data: {
215 locked: true,
216 },
217 });
209 }} 218 }}
210 className={`sidebar__button sidebar__button--audio ${
211 isAppMuted ? 'is-muted' : ''
212 }`}
213 data-tip={`${intl.formatMessage( 219 data-tip={`${intl.formatMessage(
214 isAppMuted ? messages.unmute : messages.mute, 220 messages.lockFerdi,
215 )} (${muteFerdiShortcutKey(false)})`} 221 )} (${lockFerdiShortcutKey(false)})`}
216 > 222 >
217 <Icon icon={isAppMuted ? mdiBellOff : mdiBell} size={1.5} /> 223 <Icon icon={mdiLock} size={1.5} />
218 </button> 224 </button>
219 <button 225 ) : null}
220 type="button" 226 </>
221 onClick={() => openSettings({ path: 'recipes' })}
222 className="sidebar__button sidebar__button--new-service"
223 data-tip={`${intl.formatMessage(
224 messages.addNewService,
225 )} (${addNewServiceShortcutKey(false)})`}
226 >
227 <Icon icon={mdiPlusBox} size={1.5} />
228 </button>
229 </>
230 ) : (
231 <Link
232 to="/auth/welcome"
233 className="sidebar__button sidebar__button--new-service"
234 data-tip="Login"
235 >
236 <Icon icon={mdiLoginVariant} size={1.5} />
237 </Link>
238 )}
239 <button 227 <button
240 type="button" 228 type="button"
241 onClick={() => openSettings({ path: 'app' })} 229 onClick={() => openSettings({ path: 'app' })}