From 0f2fe50e811531945ab6dfe67f604c9eddbb6239 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 11 Sep 2019 11:03:39 +0200 Subject: Fix(Todos): Fix Todos Menu --- src/features/todos/store.js | 6 +++++- src/i18n/locales/defaultMessages.json | 13 +++++++++++++ src/i18n/locales/en-US.json | 3 ++- src/i18n/messages/src/lib/Menu.json | 13 +++++++++++++ src/lib/Menu.js | 24 ++++++++++++++++++------ 5 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/features/todos/store.js b/src/features/todos/store.js index 05eef4ec1..abf176604 100644 --- a/src/features/todos/store.js +++ b/src/features/todos/store.js @@ -33,7 +33,7 @@ export default class TodoStore extends FeatureStore { @computed get isTodosPanelForceHidden() { const { isAnnouncementShown } = this.stores.announcements; - return delayAppState.isDelayAppScreenVisible || !this.settings.isFeatureEnabledByUser || isAnnouncementShown; + return delayAppState.isDelayAppScreenVisible || !this.isFeatureEnabledByUser || isAnnouncementShown; } @computed get isTodosPanelVisible() { @@ -41,6 +41,10 @@ export default class TodoStore extends FeatureStore { return this.settings.isTodosPanelVisible; } + @computed get isFeatureEnabledByUser() { + return this.settings.isFeatureEnabledByUser; + } + @computed get settings() { return localStorage.getItem('todos') || {}; } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 44a49317e..fe09fea46 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -5475,6 +5475,19 @@ "column": 20, "line": 258 } + }, + { + "defaultMessage": "!!!Enable Todos", + "end": { + "column": 3, + "line": 265 + }, + "file": "src/lib/Menu.js", + "id": "menu.todos.enableTodos", + "start": { + "column": 15, + "line": 262 + } } ], "path": "src/lib/Menu.json" diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9e63fdbca..609076e88 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -93,6 +93,7 @@ "menu.services.addNewService": "Add New Service...", "menu.services.setNextServiceActive": "Activate next service", "menu.todos": "Todos", + "menu.todos.enableTodos": "!!!Enable Todos", "menu.view": "View", "menu.view.enterFullScreen": "Enter Full Screen", "menu.view.exitFullScreen": "Exit Full Screen", @@ -379,4 +380,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index cee46608c..0c0cab33f 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json @@ -791,5 +791,18 @@ "line": 261, "column": 3 } + }, + { + "id": "menu.todos.enableTodos", + "defaultMessage": "!!!Enable Todos", + "file": "src/lib/Menu.js", + "start": { + "line": 262, + "column": 15 + }, + "end": { + "line": 265, + "column": 3 + } } ] \ No newline at end of file diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 81efaf18f..6ffa007f2 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -259,6 +259,10 @@ const menuItems = defineMessages({ id: 'menu.Todoss.closeTodosDrawer', defaultMessage: '!!!Close Todos drawer', }, + enableTodos: { + id: 'menu.todos.enableTodos', + defaultMessage: '!!!Enable Todos', + }, }); function getActiveWebview() { @@ -926,14 +930,12 @@ export default class FranzMenu { } todosMenu() { - const { isTodosPanelVisible } = TodoStore; + const { isTodosPanelVisible, isFeatureEnabledByUser } = this.stores.todos; const { intl } = window.franz; const menu = []; - // Open todos drawer: - const drawerLabel = ( - isTodosPanelVisible ? menuItems.closeTodosDrawer : menuItems.openTodosDrawer - ); + const drawerLabel = isTodosPanelVisible ? menuItems.closeTodosDrawer : menuItems.openTodosDrawer; + menu.push({ label: intl.formatMessage(drawerLabel), accelerator: `${cmdKey}+T`, @@ -941,11 +943,21 @@ export default class FranzMenu { todoActions.toggleTodosPanel(); gaEvent(GA_CATEGORY_TODOS, 'toggleDrawer', 'menu'); }, - enabled: this.stores.user.isLoggedIn, + enabled: this.stores.user.isLoggedIn && isFeatureEnabledByUser, }, { type: 'separator', }); + if (!isFeatureEnabledByUser) { + menu.push({ + label: intl.formatMessage(menuItems.enableTodos), + click: () => { + todoActions.toggleTodosFeatureVisibility(); + gaEvent(GA_CATEGORY_TODOS, 'enable', 'menu'); + }, + }); + } + return menu; } -- cgit v1.2.3-70-g09d2