aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/layout/Sidebar.js28
-rw-r--r--src/features/todos/components/TodosWebview.js58
-rw-r--r--src/features/todos/store.js6
-rw-r--r--src/i18n/locales/defaultMessages.json319
-rw-r--r--src/i18n/locales/en-US.json3
-rw-r--r--src/i18n/messages/src/components/layout/Sidebar.json50
-rw-r--r--src/i18n/messages/src/features/todos/components/TodosWebview.json12
-rw-r--r--src/i18n/messages/src/lib/Menu.json255
-rw-r--r--src/lib/Menu.js25
9 files changed, 412 insertions, 344 deletions
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index 36c1f2e39..bac57d4dc 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -8,6 +8,8 @@ import Tabbar from '../services/tabs/Tabbar';
8import { ctrlKey } from '../../environment'; 8import { ctrlKey } from '../../environment';
9import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../../features/workspaces'; 9import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../../features/workspaces';
10import { gaEvent } from '../../lib/analytics'; 10import { gaEvent } from '../../lib/analytics';
11import { todosStore, GA_CATEGORY_TODOS } from '../../features/todos';
12import { todoActions } from '../../features/todos/actions';
11 13
12const messages = defineMessages({ 14const messages = defineMessages({
13 settings: { 15 settings: {
@@ -34,6 +36,14 @@ const messages = defineMessages({
34 id: 'sidebar.closeWorkspaceDrawer', 36 id: 'sidebar.closeWorkspaceDrawer',
35 defaultMessage: '!!!Close workspace drawer', 37 defaultMessage: '!!!Close workspace drawer',
36 }, 38 },
39 openTodosDrawer: {
40 id: 'sidebar.openTodosDrawer',
41 defaultMessage: '!!!Open Franz Todos',
42 },
43 closeTodosDrawer: {
44 id: 'sidebar.closeTodosDrawer',
45 defaultMessage: '!!!Close Franz Todos',
46 },
37}); 47});
38 48
39export default @observer class Sidebar extends Component { 49export default @observer class Sidebar extends Component {
@@ -79,6 +89,10 @@ export default @observer class Sidebar extends Component {
79 toggleWorkspaceDrawer, 89 toggleWorkspaceDrawer,
80 } = this.props; 90 } = this.props;
81 const { intl } = this.context; 91 const { intl } = this.context;
92 const todosToggleMessage = (
93 todosStore.isTodosPanelVisible ? messages.closeTodosDrawer : messages.openTodosDrawer
94 );
95
82 const workspaceToggleMessage = ( 96 const workspaceToggleMessage = (
83 isWorkspaceDrawerOpen ? messages.closeWorkspaceDrawer : messages.openWorkspaceDrawer 97 isWorkspaceDrawerOpen ? messages.closeWorkspaceDrawer : messages.openWorkspaceDrawer
84 ); 98 );
@@ -90,6 +104,20 @@ export default @observer class Sidebar extends Component {
90 enableToolTip={() => this.enableToolTip()} 104 enableToolTip={() => this.enableToolTip()}
91 disableToolTip={() => this.disableToolTip()} 105 disableToolTip={() => this.disableToolTip()}
92 /> 106 />
107 {todosStore.isFeatureEnabled && todosStore.isFeatureEnabledByUser ? (
108 <button
109 type="button"
110 onClick={() => {
111 todoActions.toggleTodosPanel();
112 this.updateToolTip();
113 gaEvent(GA_CATEGORY_TODOS, 'toggleDrawer', 'sidebar');
114 }}
115 className="sidebar__button sidebar__button--workspaces"
116 data-tip={`${intl.formatMessage(todosToggleMessage)} (${ctrlKey}+T)`}
117 >
118 <i className="mdi mdi-check-all" />
119 </button>
120 ) : null}
93 {workspaceStore.isFeatureEnabled ? ( 121 {workspaceStore.isFeatureEnabled ? (
94 <button 122 <button
95 type="button" 123 type="button"
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js
index c06183e37..d052da6f2 100644
--- a/src/features/todos/components/TodosWebview.js
+++ b/src/features/todos/components/TodosWebview.js
@@ -6,14 +6,11 @@ import Webview from 'react-electron-web-view';
6import { Icon } from '@meetfranz/ui'; 6import { Icon } from '@meetfranz/ui';
7import { defineMessages, intlShape } from 'react-intl'; 7import { defineMessages, intlShape } from 'react-intl';
8 8
9import { mdiChevronRight, mdiCheckAll } from '@mdi/js'; 9import { mdiCheckAll } from '@mdi/js';
10import * as environment from '../../../environment'; 10import * as environment from '../../../environment';
11import Appear from '../../../components/ui/effects/Appear'; 11import Appear from '../../../components/ui/effects/Appear';
12import UpgradeButton from '../../../components/ui/UpgradeButton'; 12import UpgradeButton from '../../../components/ui/UpgradeButton';
13 13
14const OPEN_TODOS_BUTTON_SIZE = 45;
15const CLOSE_TODOS_BUTTON_SIZE = 35;
16
17const messages = defineMessages({ 14const messages = defineMessages({
18 premiumInfo: { 15 premiumInfo: {
19 id: 'feature.todos.premium.info', 16 id: 'feature.todos.premium.info',
@@ -61,50 +58,6 @@ const styles = theme => ({
61 background: theme.todos.dragIndicator.background, 58 background: theme.todos.dragIndicator.background,
62 59
63 }, 60 },
64 openTodosButton: {
65 width: OPEN_TODOS_BUTTON_SIZE,
66 height: OPEN_TODOS_BUTTON_SIZE,
67 background: theme.todos.toggleButton.background,
68 position: 'absolute',
69 bottom: 120,
70 right: props => (props.width + (props.isVisible ? -OPEN_TODOS_BUTTON_SIZE / 2 : 0)),
71 borderRadius: OPEN_TODOS_BUTTON_SIZE / 2,
72 opacity: props => (props.isVisible ? 0 : 1),
73 transition: 'right 0.5s',
74 zIndex: 600,
75 display: 'flex',
76 alignItems: 'center',
77 justifyContent: 'center',
78 boxShadow: [0, 0, 10, theme.todos.toggleButton.shadowColor],
79
80 borderTopRightRadius: props => (props.isVisible ? null : 0),
81 borderBottomRightRadius: props => (props.isVisible ? null : 0),
82
83 '& svg': {
84 fill: theme.todos.toggleButton.textColor,
85 transition: 'all 0.5s',
86 },
87 },
88 closeTodosButton: {
89 width: CLOSE_TODOS_BUTTON_SIZE,
90 height: CLOSE_TODOS_BUTTON_SIZE,
91 background: theme.todos.toggleButton.background,
92 position: 'absolute',
93 bottom: 120,
94 right: ({ width }) => (width + -CLOSE_TODOS_BUTTON_SIZE / 2),
95 borderRadius: CLOSE_TODOS_BUTTON_SIZE / 2,
96 opacity: ({ isTodosIncludedInCurrentPlan }) => (!isTodosIncludedInCurrentPlan ? 1 : 0),
97 transition: 'opacity 0.5s',
98 zIndex: 600,
99 display: 'flex',
100 alignItems: 'center',
101 justifyContent: 'center',
102 boxShadow: [0, 0, 10, theme.todos.toggleButton.shadowColor],
103
104 '& svg': {
105 fill: theme.todos.toggleButton.textColor,
106 },
107 },
108 premiumContainer: { 61 premiumContainer: {
109 display: 'flex', 62 display: 'flex',
110 flexDirection: 'column', 63 flexDirection: 'column',
@@ -132,7 +85,6 @@ class TodosWebview extends Component {
132 static propTypes = { 85 static propTypes = {
133 classes: PropTypes.object.isRequired, 86 classes: PropTypes.object.isRequired,
134 isVisible: PropTypes.bool.isRequired, 87 isVisible: PropTypes.bool.isRequired,
135 togglePanel: PropTypes.func.isRequired,
136 handleClientMessage: PropTypes.func.isRequired, 88 handleClientMessage: PropTypes.func.isRequired,
137 setTodosWebview: PropTypes.func.isRequired, 89 setTodosWebview: PropTypes.func.isRequired,
138 resize: PropTypes.func.isRequired, 90 resize: PropTypes.func.isRequired,
@@ -228,7 +180,6 @@ class TodosWebview extends Component {
228 const { 180 const {
229 classes, 181 classes,
230 isVisible, 182 isVisible,
231 togglePanel,
232 isTodosIncludedInCurrentPlan, 183 isTodosIncludedInCurrentPlan,
233 } = this.props; 184 } = this.props;
234 185
@@ -247,13 +198,6 @@ class TodosWebview extends Component {
247 onMouseUp={() => this.stopResize()} 198 onMouseUp={() => this.stopResize()}
248 ref={(node) => { this.node = node; }} 199 ref={(node) => { this.node = node; }}
249 > 200 >
250 <button
251 onClick={() => togglePanel()}
252 className={isVisible ? classes.closeTodosButton : classes.openTodosButton}
253 type="button"
254 >
255 <Icon icon={isVisible ? mdiChevronRight : mdiCheckAll} size={2} />
256 </button>
257 <div 201 <div
258 className={classes.resizeHandler} 202 className={classes.resizeHandler}
259 style={Object.assign({ left: delta }, isDragging ? { width: 600, marginLeft: -200 } : {})} // This hack is required as resizing with webviews beneath behaves quite bad 203 style={Object.assign({ left: delta }, isDragging ? { width: 600, marginLeft: -200 } : {})} // This hack is required as resizing with webviews beneath behaves quite bad
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 {
33 33
34 @computed get isTodosPanelForceHidden() { 34 @computed get isTodosPanelForceHidden() {
35 const { isAnnouncementShown } = this.stores.announcements; 35 const { isAnnouncementShown } = this.stores.announcements;
36 return delayAppState.isDelayAppScreenVisible || !this.settings.isFeatureEnabledByUser || isAnnouncementShown; 36 return delayAppState.isDelayAppScreenVisible || !this.isFeatureEnabledByUser || isAnnouncementShown;
37 } 37 }
38 38
39 @computed get isTodosPanelVisible() { 39 @computed get isTodosPanelVisible() {
@@ -41,6 +41,10 @@ export default class TodoStore extends FeatureStore {
41 return this.settings.isTodosPanelVisible; 41 return this.settings.isTodosPanelVisible;
42 } 42 }
43 43
44 @computed get isFeatureEnabledByUser() {
45 return this.settings.isFeatureEnabledByUser;
46 }
47
44 @computed get settings() { 48 @computed get settings() {
45 return localStorage.getItem('todos') || {}; 49 return localStorage.getItem('todos') || {};
46 } 50 }
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 3f815dda7..0dfe2055a 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -765,78 +765,104 @@
765 "defaultMessage": "!!!Settings", 765 "defaultMessage": "!!!Settings",
766 "end": { 766 "end": {
767 "column": 3, 767 "column": 3,
768 "line": 16 768 "line": 18
769 }, 769 },
770 "file": "src/components/layout/Sidebar.js", 770 "file": "src/components/layout/Sidebar.js",
771 "id": "sidebar.settings", 771 "id": "sidebar.settings",
772 "start": { 772 "start": {
773 "column": 12, 773 "column": 12,
774 "line": 13 774 "line": 15
775 } 775 }
776 }, 776 },
777 { 777 {
778 "defaultMessage": "!!!Add new service", 778 "defaultMessage": "!!!Add new service",
779 "end": { 779 "end": {
780 "column": 3, 780 "column": 3,
781 "line": 20 781 "line": 22
782 }, 782 },
783 "file": "src/components/layout/Sidebar.js", 783 "file": "src/components/layout/Sidebar.js",
784 "id": "sidebar.addNewService", 784 "id": "sidebar.addNewService",
785 "start": { 785 "start": {
786 "column": 17, 786 "column": 17,
787 "line": 17 787 "line": 19
788 } 788 }
789 }, 789 },
790 { 790 {
791 "defaultMessage": "!!!Disable notifications & audio", 791 "defaultMessage": "!!!Disable notifications & audio",
792 "end": { 792 "end": {
793 "column": 3, 793 "column": 3,
794 "line": 24 794 "line": 26
795 }, 795 },
796 "file": "src/components/layout/Sidebar.js", 796 "file": "src/components/layout/Sidebar.js",
797 "id": "sidebar.muteApp", 797 "id": "sidebar.muteApp",
798 "start": { 798 "start": {
799 "column": 8, 799 "column": 8,
800 "line": 21 800 "line": 23
801 } 801 }
802 }, 802 },
803 { 803 {
804 "defaultMessage": "!!!Enable notifications & audio", 804 "defaultMessage": "!!!Enable notifications & audio",
805 "end": { 805 "end": {
806 "column": 3, 806 "column": 3,
807 "line": 28 807 "line": 30
808 }, 808 },
809 "file": "src/components/layout/Sidebar.js", 809 "file": "src/components/layout/Sidebar.js",
810 "id": "sidebar.unmuteApp", 810 "id": "sidebar.unmuteApp",
811 "start": { 811 "start": {
812 "column": 10, 812 "column": 10,
813 "line": 25 813 "line": 27
814 } 814 }
815 }, 815 },
816 { 816 {
817 "defaultMessage": "!!!Open workspace drawer", 817 "defaultMessage": "!!!Open workspace drawer",
818 "end": { 818 "end": {
819 "column": 3, 819 "column": 3,
820 "line": 32 820 "line": 34
821 }, 821 },
822 "file": "src/components/layout/Sidebar.js", 822 "file": "src/components/layout/Sidebar.js",
823 "id": "sidebar.openWorkspaceDrawer", 823 "id": "sidebar.openWorkspaceDrawer",
824 "start": { 824 "start": {
825 "column": 23, 825 "column": 23,
826 "line": 29 826 "line": 31
827 } 827 }
828 }, 828 },
829 { 829 {
830 "defaultMessage": "!!!Close workspace drawer", 830 "defaultMessage": "!!!Close workspace drawer",
831 "end": { 831 "end": {
832 "column": 3, 832 "column": 3,
833 "line": 36 833 "line": 38
834 }, 834 },
835 "file": "src/components/layout/Sidebar.js", 835 "file": "src/components/layout/Sidebar.js",
836 "id": "sidebar.closeWorkspaceDrawer", 836 "id": "sidebar.closeWorkspaceDrawer",
837 "start": { 837 "start": {
838 "column": 24, 838 "column": 24,
839 "line": 33 839 "line": 35
840 }
841 },
842 {
843 "defaultMessage": "!!!Open Franz Todos",
844 "end": {
845 "column": 3,
846 "line": 42
847 },
848 "file": "src/components/layout/Sidebar.js",
849 "id": "sidebar.openTodosDrawer",
850 "start": {
851 "column": 19,
852 "line": 39
853 }
854 },
855 {
856 "defaultMessage": "!!!Close Franz Todos",
857 "end": {
858 "column": 3,
859 "line": 46
860 },
861 "file": "src/components/layout/Sidebar.js",
862 "id": "sidebar.closeTodosDrawer",
863 "start": {
864 "column": 20,
865 "line": 43
840 } 866 }
841 } 867 }
842 ], 868 ],
@@ -3956,39 +3982,39 @@
3956 "defaultMessage": "!!!Franz Todos are available to premium users now!", 3982 "defaultMessage": "!!!Franz Todos are available to premium users now!",
3957 "end": { 3983 "end": {
3958 "column": 3, 3984 "column": 3,
3959 "line": 21 3985 "line": 18
3960 }, 3986 },
3961 "file": "src/features/todos/components/TodosWebview.js", 3987 "file": "src/features/todos/components/TodosWebview.js",
3962 "id": "feature.todos.premium.info", 3988 "id": "feature.todos.premium.info",
3963 "start": { 3989 "start": {
3964 "column": 15, 3990 "column": 15,
3965 "line": 18 3991 "line": 15
3966 } 3992 }
3967 }, 3993 },
3968 { 3994 {
3969 "defaultMessage": "!!!Upgrade Account", 3995 "defaultMessage": "!!!Upgrade Account",
3970 "end": { 3996 "end": {
3971 "column": 3, 3997 "column": 3,
3972 "line": 25 3998 "line": 22
3973 }, 3999 },
3974 "file": "src/features/todos/components/TodosWebview.js", 4000 "file": "src/features/todos/components/TodosWebview.js",
3975 "id": "feature.todos.premium.upgrade", 4001 "id": "feature.todos.premium.upgrade",
3976 "start": { 4002 "start": {
3977 "column": 14, 4003 "column": 14,
3978 "line": 22 4004 "line": 19
3979 } 4005 }
3980 }, 4006 },
3981 { 4007 {
3982 "defaultMessage": "!!!Everyone else will have to wait a little longer.", 4008 "defaultMessage": "!!!Everyone else will have to wait a little longer.",
3983 "end": { 4009 "end": {
3984 "column": 3, 4010 "column": 3,
3985 "line": 29 4011 "line": 26
3986 }, 4012 },
3987 "file": "src/features/todos/components/TodosWebview.js", 4013 "file": "src/features/todos/components/TodosWebview.js",
3988 "id": "feature.todos.premium.rollout", 4014 "id": "feature.todos.premium.rollout",
3989 "start": { 4015 "start": {
3990 "column": 15, 4016 "column": 15,
3991 "line": 26 4017 "line": 23
3992 } 4018 }
3993 } 4019 }
3994 ], 4020 ],
@@ -4700,793 +4726,806 @@
4700 "defaultMessage": "!!!Edit", 4726 "defaultMessage": "!!!Edit",
4701 "end": { 4727 "end": {
4702 "column": 3, 4728 "column": 3,
4703 "line": 21 4729 "line": 20
4704 }, 4730 },
4705 "file": "src/lib/Menu.js", 4731 "file": "src/lib/Menu.js",
4706 "id": "menu.edit", 4732 "id": "menu.edit",
4707 "start": { 4733 "start": {
4708 "column": 8, 4734 "column": 8,
4709 "line": 18 4735 "line": 17
4710 } 4736 }
4711 }, 4737 },
4712 { 4738 {
4713 "defaultMessage": "!!!Undo", 4739 "defaultMessage": "!!!Undo",
4714 "end": { 4740 "end": {
4715 "column": 3, 4741 "column": 3,
4716 "line": 25 4742 "line": 24
4717 }, 4743 },
4718 "file": "src/lib/Menu.js", 4744 "file": "src/lib/Menu.js",
4719 "id": "menu.edit.undo", 4745 "id": "menu.edit.undo",
4720 "start": { 4746 "start": {
4721 "column": 8, 4747 "column": 8,
4722 "line": 22 4748 "line": 21
4723 } 4749 }
4724 }, 4750 },
4725 { 4751 {
4726 "defaultMessage": "!!!Redo", 4752 "defaultMessage": "!!!Redo",
4727 "end": { 4753 "end": {
4728 "column": 3, 4754 "column": 3,
4729 "line": 29 4755 "line": 28
4730 }, 4756 },
4731 "file": "src/lib/Menu.js", 4757 "file": "src/lib/Menu.js",
4732 "id": "menu.edit.redo", 4758 "id": "menu.edit.redo",
4733 "start": { 4759 "start": {
4734 "column": 8, 4760 "column": 8,
4735 "line": 26 4761 "line": 25
4736 } 4762 }
4737 }, 4763 },
4738 { 4764 {
4739 "defaultMessage": "!!!Cut", 4765 "defaultMessage": "!!!Cut",
4740 "end": { 4766 "end": {
4741 "column": 3, 4767 "column": 3,
4742 "line": 33 4768 "line": 32
4743 }, 4769 },
4744 "file": "src/lib/Menu.js", 4770 "file": "src/lib/Menu.js",
4745 "id": "menu.edit.cut", 4771 "id": "menu.edit.cut",
4746 "start": { 4772 "start": {
4747 "column": 7, 4773 "column": 7,
4748 "line": 30 4774 "line": 29
4749 } 4775 }
4750 }, 4776 },
4751 { 4777 {
4752 "defaultMessage": "!!!Copy", 4778 "defaultMessage": "!!!Copy",
4753 "end": { 4779 "end": {
4754 "column": 3, 4780 "column": 3,
4755 "line": 37 4781 "line": 36
4756 }, 4782 },
4757 "file": "src/lib/Menu.js", 4783 "file": "src/lib/Menu.js",
4758 "id": "menu.edit.copy", 4784 "id": "menu.edit.copy",
4759 "start": { 4785 "start": {
4760 "column": 8, 4786 "column": 8,
4761 "line": 34 4787 "line": 33
4762 } 4788 }
4763 }, 4789 },
4764 { 4790 {
4765 "defaultMessage": "!!!Paste", 4791 "defaultMessage": "!!!Paste",
4766 "end": { 4792 "end": {
4767 "column": 3, 4793 "column": 3,
4768 "line": 41 4794 "line": 40
4769 }, 4795 },
4770 "file": "src/lib/Menu.js", 4796 "file": "src/lib/Menu.js",
4771 "id": "menu.edit.paste", 4797 "id": "menu.edit.paste",
4772 "start": { 4798 "start": {
4773 "column": 9, 4799 "column": 9,
4774 "line": 38 4800 "line": 37
4775 } 4801 }
4776 }, 4802 },
4777 { 4803 {
4778 "defaultMessage": "!!!Paste And Match Style", 4804 "defaultMessage": "!!!Paste And Match Style",
4779 "end": { 4805 "end": {
4780 "column": 3, 4806 "column": 3,
4781 "line": 45 4807 "line": 44
4782 }, 4808 },
4783 "file": "src/lib/Menu.js", 4809 "file": "src/lib/Menu.js",
4784 "id": "menu.edit.pasteAndMatchStyle", 4810 "id": "menu.edit.pasteAndMatchStyle",
4785 "start": { 4811 "start": {
4786 "column": 22, 4812 "column": 22,
4787 "line": 42 4813 "line": 41
4788 } 4814 }
4789 }, 4815 },
4790 { 4816 {
4791 "defaultMessage": "!!!Delete", 4817 "defaultMessage": "!!!Delete",
4792 "end": { 4818 "end": {
4793 "column": 3, 4819 "column": 3,
4794 "line": 49 4820 "line": 48
4795 }, 4821 },
4796 "file": "src/lib/Menu.js", 4822 "file": "src/lib/Menu.js",
4797 "id": "menu.edit.delete", 4823 "id": "menu.edit.delete",
4798 "start": { 4824 "start": {
4799 "column": 10, 4825 "column": 10,
4800 "line": 46 4826 "line": 45
4801 } 4827 }
4802 }, 4828 },
4803 { 4829 {
4804 "defaultMessage": "!!!Select All", 4830 "defaultMessage": "!!!Select All",
4805 "end": { 4831 "end": {
4806 "column": 3, 4832 "column": 3,
4807 "line": 53 4833 "line": 52
4808 }, 4834 },
4809 "file": "src/lib/Menu.js", 4835 "file": "src/lib/Menu.js",
4810 "id": "menu.edit.selectAll", 4836 "id": "menu.edit.selectAll",
4811 "start": { 4837 "start": {
4812 "column": 13, 4838 "column": 13,
4813 "line": 50 4839 "line": 49
4814 } 4840 }
4815 }, 4841 },
4816 { 4842 {
4817 "defaultMessage": "!!!Speech", 4843 "defaultMessage": "!!!Speech",
4818 "end": { 4844 "end": {
4819 "column": 3, 4845 "column": 3,
4820 "line": 57 4846 "line": 56
4821 }, 4847 },
4822 "file": "src/lib/Menu.js", 4848 "file": "src/lib/Menu.js",
4823 "id": "menu.edit.speech", 4849 "id": "menu.edit.speech",
4824 "start": { 4850 "start": {
4825 "column": 10, 4851 "column": 10,
4826 "line": 54 4852 "line": 53
4827 } 4853 }
4828 }, 4854 },
4829 { 4855 {
4830 "defaultMessage": "!!!Start Speaking", 4856 "defaultMessage": "!!!Start Speaking",
4831 "end": { 4857 "end": {
4832 "column": 3, 4858 "column": 3,
4833 "line": 61 4859 "line": 60
4834 }, 4860 },
4835 "file": "src/lib/Menu.js", 4861 "file": "src/lib/Menu.js",
4836 "id": "menu.edit.startSpeaking", 4862 "id": "menu.edit.startSpeaking",
4837 "start": { 4863 "start": {
4838 "column": 17, 4864 "column": 17,
4839 "line": 58 4865 "line": 57
4840 } 4866 }
4841 }, 4867 },
4842 { 4868 {
4843 "defaultMessage": "!!!Stop Speaking", 4869 "defaultMessage": "!!!Stop Speaking",
4844 "end": { 4870 "end": {
4845 "column": 3, 4871 "column": 3,
4846 "line": 65 4872 "line": 64
4847 }, 4873 },
4848 "file": "src/lib/Menu.js", 4874 "file": "src/lib/Menu.js",
4849 "id": "menu.edit.stopSpeaking", 4875 "id": "menu.edit.stopSpeaking",
4850 "start": { 4876 "start": {
4851 "column": 16, 4877 "column": 16,
4852 "line": 62 4878 "line": 61
4853 } 4879 }
4854 }, 4880 },
4855 { 4881 {
4856 "defaultMessage": "!!!Start Dictation", 4882 "defaultMessage": "!!!Start Dictation",
4857 "end": { 4883 "end": {
4858 "column": 3, 4884 "column": 3,
4859 "line": 69 4885 "line": 68
4860 }, 4886 },
4861 "file": "src/lib/Menu.js", 4887 "file": "src/lib/Menu.js",
4862 "id": "menu.edit.startDictation", 4888 "id": "menu.edit.startDictation",
4863 "start": { 4889 "start": {
4864 "column": 18, 4890 "column": 18,
4865 "line": 66 4891 "line": 65
4866 } 4892 }
4867 }, 4893 },
4868 { 4894 {
4869 "defaultMessage": "!!!Emoji & Symbols", 4895 "defaultMessage": "!!!Emoji & Symbols",
4870 "end": { 4896 "end": {
4871 "column": 3, 4897 "column": 3,
4872 "line": 73 4898 "line": 72
4873 }, 4899 },
4874 "file": "src/lib/Menu.js", 4900 "file": "src/lib/Menu.js",
4875 "id": "menu.edit.emojiSymbols", 4901 "id": "menu.edit.emojiSymbols",
4876 "start": { 4902 "start": {
4877 "column": 16, 4903 "column": 16,
4878 "line": 70 4904 "line": 69
4879 } 4905 }
4880 }, 4906 },
4881 { 4907 {
4882 "defaultMessage": "!!!Actual Size", 4908 "defaultMessage": "!!!Actual Size",
4883 "end": { 4909 "end": {
4884 "column": 3, 4910 "column": 3,
4885 "line": 77 4911 "line": 76
4886 }, 4912 },
4887 "file": "src/lib/Menu.js", 4913 "file": "src/lib/Menu.js",
4888 "id": "menu.view.resetZoom", 4914 "id": "menu.view.resetZoom",
4889 "start": { 4915 "start": {
4890 "column": 13, 4916 "column": 13,
4891 "line": 74 4917 "line": 73
4892 } 4918 }
4893 }, 4919 },
4894 { 4920 {
4895 "defaultMessage": "!!!Zoom In", 4921 "defaultMessage": "!!!Zoom In",
4896 "end": { 4922 "end": {
4897 "column": 3, 4923 "column": 3,
4898 "line": 81 4924 "line": 80
4899 }, 4925 },
4900 "file": "src/lib/Menu.js", 4926 "file": "src/lib/Menu.js",
4901 "id": "menu.view.zoomIn", 4927 "id": "menu.view.zoomIn",
4902 "start": { 4928 "start": {
4903 "column": 10, 4929 "column": 10,
4904 "line": 78 4930 "line": 77
4905 } 4931 }
4906 }, 4932 },
4907 { 4933 {
4908 "defaultMessage": "!!!Zoom Out", 4934 "defaultMessage": "!!!Zoom Out",
4909 "end": { 4935 "end": {
4910 "column": 3, 4936 "column": 3,
4911 "line": 85 4937 "line": 84
4912 }, 4938 },
4913 "file": "src/lib/Menu.js", 4939 "file": "src/lib/Menu.js",
4914 "id": "menu.view.zoomOut", 4940 "id": "menu.view.zoomOut",
4915 "start": { 4941 "start": {
4916 "column": 11, 4942 "column": 11,
4917 "line": 82 4943 "line": 81
4918 } 4944 }
4919 }, 4945 },
4920 { 4946 {
4921 "defaultMessage": "!!!Enter Full Screen", 4947 "defaultMessage": "!!!Enter Full Screen",
4922 "end": { 4948 "end": {
4923 "column": 3, 4949 "column": 3,
4924 "line": 89 4950 "line": 88
4925 }, 4951 },
4926 "file": "src/lib/Menu.js", 4952 "file": "src/lib/Menu.js",
4927 "id": "menu.view.enterFullScreen", 4953 "id": "menu.view.enterFullScreen",
4928 "start": { 4954 "start": {
4929 "column": 19, 4955 "column": 19,
4930 "line": 86 4956 "line": 85
4931 } 4957 }
4932 }, 4958 },
4933 { 4959 {
4934 "defaultMessage": "!!!Exit Full Screen", 4960 "defaultMessage": "!!!Exit Full Screen",
4935 "end": { 4961 "end": {
4936 "column": 3, 4962 "column": 3,
4937 "line": 93 4963 "line": 92
4938 }, 4964 },
4939 "file": "src/lib/Menu.js", 4965 "file": "src/lib/Menu.js",
4940 "id": "menu.view.exitFullScreen", 4966 "id": "menu.view.exitFullScreen",
4941 "start": { 4967 "start": {
4942 "column": 18, 4968 "column": 18,
4943 "line": 90 4969 "line": 89
4944 } 4970 }
4945 }, 4971 },
4946 { 4972 {
4947 "defaultMessage": "!!!Toggle Full Screen", 4973 "defaultMessage": "!!!Toggle Full Screen",
4948 "end": { 4974 "end": {
4949 "column": 3, 4975 "column": 3,
4950 "line": 97 4976 "line": 96
4951 }, 4977 },
4952 "file": "src/lib/Menu.js", 4978 "file": "src/lib/Menu.js",
4953 "id": "menu.view.toggleFullScreen", 4979 "id": "menu.view.toggleFullScreen",
4954 "start": { 4980 "start": {
4955 "column": 20, 4981 "column": 20,
4956 "line": 94 4982 "line": 93
4957 } 4983 }
4958 }, 4984 },
4959 { 4985 {
4960 "defaultMessage": "!!!Toggle Developer Tools", 4986 "defaultMessage": "!!!Toggle Developer Tools",
4961 "end": { 4987 "end": {
4962 "column": 3, 4988 "column": 3,
4963 "line": 101 4989 "line": 100
4964 }, 4990 },
4965 "file": "src/lib/Menu.js", 4991 "file": "src/lib/Menu.js",
4966 "id": "menu.view.toggleDevTools", 4992 "id": "menu.view.toggleDevTools",
4967 "start": { 4993 "start": {
4968 "column": 18, 4994 "column": 18,
4969 "line": 98 4995 "line": 97
4970 } 4996 }
4971 }, 4997 },
4972 { 4998 {
4973 "defaultMessage": "!!!Toggle Todos Developer Tools", 4999 "defaultMessage": "!!!Toggle Todos Developer Tools",
4974 "end": { 5000 "end": {
4975 "column": 3, 5001 "column": 3,
4976 "line": 105 5002 "line": 104
4977 }, 5003 },
4978 "file": "src/lib/Menu.js", 5004 "file": "src/lib/Menu.js",
4979 "id": "menu.view.toggleTodosDevTools", 5005 "id": "menu.view.toggleTodosDevTools",
4980 "start": { 5006 "start": {
4981 "column": 23, 5007 "column": 23,
4982 "line": 102 5008 "line": 101
4983 } 5009 }
4984 }, 5010 },
4985 { 5011 {
4986 "defaultMessage": "!!!Toggle Service Developer Tools", 5012 "defaultMessage": "!!!Toggle Service Developer Tools",
4987 "end": { 5013 "end": {
4988 "column": 3, 5014 "column": 3,
4989 "line": 109 5015 "line": 108
4990 }, 5016 },
4991 "file": "src/lib/Menu.js", 5017 "file": "src/lib/Menu.js",
4992 "id": "menu.view.toggleServiceDevTools", 5018 "id": "menu.view.toggleServiceDevTools",
4993 "start": { 5019 "start": {
4994 "column": 25, 5020 "column": 25,
4995 "line": 106 5021 "line": 105
4996 } 5022 }
4997 }, 5023 },
4998 { 5024 {
4999 "defaultMessage": "!!!Reload Service", 5025 "defaultMessage": "!!!Reload Service",
5000 "end": { 5026 "end": {
5001 "column": 3, 5027 "column": 3,
5002 "line": 113 5028 "line": 112
5003 }, 5029 },
5004 "file": "src/lib/Menu.js", 5030 "file": "src/lib/Menu.js",
5005 "id": "menu.view.reloadService", 5031 "id": "menu.view.reloadService",
5006 "start": { 5032 "start": {
5007 "column": 17, 5033 "column": 17,
5008 "line": 110 5034 "line": 109
5009 } 5035 }
5010 }, 5036 },
5011 { 5037 {
5012 "defaultMessage": "!!!Reload Franz", 5038 "defaultMessage": "!!!Reload Franz",
5013 "end": { 5039 "end": {
5014 "column": 3, 5040 "column": 3,
5015 "line": 117 5041 "line": 116
5016 }, 5042 },
5017 "file": "src/lib/Menu.js", 5043 "file": "src/lib/Menu.js",
5018 "id": "menu.view.reloadFranz", 5044 "id": "menu.view.reloadFranz",
5019 "start": { 5045 "start": {
5020 "column": 15, 5046 "column": 15,
5021 "line": 114 5047 "line": 113
5022 } 5048 }
5023 }, 5049 },
5024 { 5050 {
5025 "defaultMessage": "!!!Minimize", 5051 "defaultMessage": "!!!Minimize",
5026 "end": { 5052 "end": {
5027 "column": 3, 5053 "column": 3,
5028 "line": 121 5054 "line": 120
5029 }, 5055 },
5030 "file": "src/lib/Menu.js", 5056 "file": "src/lib/Menu.js",
5031 "id": "menu.window.minimize", 5057 "id": "menu.window.minimize",
5032 "start": { 5058 "start": {
5033 "column": 12, 5059 "column": 12,
5034 "line": 118 5060 "line": 117
5035 } 5061 }
5036 }, 5062 },
5037 { 5063 {
5038 "defaultMessage": "!!!Close", 5064 "defaultMessage": "!!!Close",
5039 "end": { 5065 "end": {
5040 "column": 3, 5066 "column": 3,
5041 "line": 125 5067 "line": 124
5042 }, 5068 },
5043 "file": "src/lib/Menu.js", 5069 "file": "src/lib/Menu.js",
5044 "id": "menu.window.close", 5070 "id": "menu.window.close",
5045 "start": { 5071 "start": {
5046 "column": 9, 5072 "column": 9,
5047 "line": 122 5073 "line": 121
5048 } 5074 }
5049 }, 5075 },
5050 { 5076 {
5051 "defaultMessage": "!!!Learn More", 5077 "defaultMessage": "!!!Learn More",
5052 "end": { 5078 "end": {
5053 "column": 3, 5079 "column": 3,
5054 "line": 129 5080 "line": 128
5055 }, 5081 },
5056 "file": "src/lib/Menu.js", 5082 "file": "src/lib/Menu.js",
5057 "id": "menu.help.learnMore", 5083 "id": "menu.help.learnMore",
5058 "start": { 5084 "start": {
5059 "column": 13, 5085 "column": 13,
5060 "line": 126 5086 "line": 125
5061 } 5087 }
5062 }, 5088 },
5063 { 5089 {
5064 "defaultMessage": "!!!Changelog", 5090 "defaultMessage": "!!!Changelog",
5065 "end": { 5091 "end": {
5066 "column": 3, 5092 "column": 3,
5067 "line": 133 5093 "line": 132
5068 }, 5094 },
5069 "file": "src/lib/Menu.js", 5095 "file": "src/lib/Menu.js",
5070 "id": "menu.help.changelog", 5096 "id": "menu.help.changelog",
5071 "start": { 5097 "start": {
5072 "column": 13, 5098 "column": 13,
5073 "line": 130 5099 "line": 129
5074 } 5100 }
5075 }, 5101 },
5076 { 5102 {
5077 "defaultMessage": "!!!Support", 5103 "defaultMessage": "!!!Support",
5078 "end": { 5104 "end": {
5079 "column": 3, 5105 "column": 3,
5080 "line": 137 5106 "line": 136
5081 }, 5107 },
5082 "file": "src/lib/Menu.js", 5108 "file": "src/lib/Menu.js",
5083 "id": "menu.help.support", 5109 "id": "menu.help.support",
5084 "start": { 5110 "start": {
5085 "column": 11, 5111 "column": 11,
5086 "line": 134 5112 "line": 133
5087 } 5113 }
5088 }, 5114 },
5089 { 5115 {
5090 "defaultMessage": "!!!Copy Debug Information", 5116 "defaultMessage": "!!!Copy Debug Information",
5091 "end": { 5117 "end": {
5092 "column": 3, 5118 "column": 3,
5093 "line": 141 5119 "line": 140
5094 }, 5120 },
5095 "file": "src/lib/Menu.js", 5121 "file": "src/lib/Menu.js",
5096 "id": "menu.help.debugInfo", 5122 "id": "menu.help.debugInfo",
5097 "start": { 5123 "start": {
5098 "column": 13, 5124 "column": 13,
5099 "line": 138 5125 "line": 137
5100 } 5126 }
5101 }, 5127 },
5102 { 5128 {
5103 "defaultMessage": "!!!Franz Debug Information", 5129 "defaultMessage": "!!!Franz Debug Information",
5104 "end": { 5130 "end": {
5105 "column": 3, 5131 "column": 3,
5106 "line": 145 5132 "line": 144
5107 }, 5133 },
5108 "file": "src/lib/Menu.js", 5134 "file": "src/lib/Menu.js",
5109 "id": "menu.help.debugInfoCopiedHeadline", 5135 "id": "menu.help.debugInfoCopiedHeadline",
5110 "start": { 5136 "start": {
5111 "column": 27, 5137 "column": 27,
5112 "line": 142 5138 "line": 141
5113 } 5139 }
5114 }, 5140 },
5115 { 5141 {
5116 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 5142 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
5117 "end": { 5143 "end": {
5118 "column": 3, 5144 "column": 3,
5119 "line": 149 5145 "line": 148
5120 }, 5146 },
5121 "file": "src/lib/Menu.js", 5147 "file": "src/lib/Menu.js",
5122 "id": "menu.help.debugInfoCopiedBody", 5148 "id": "menu.help.debugInfoCopiedBody",
5123 "start": { 5149 "start": {
5124 "column": 23, 5150 "column": 23,
5125 "line": 146 5151 "line": 145
5126 } 5152 }
5127 }, 5153 },
5128 { 5154 {
5129 "defaultMessage": "!!!Terms of Service", 5155 "defaultMessage": "!!!Terms of Service",
5130 "end": { 5156 "end": {
5131 "column": 3, 5157 "column": 3,
5132 "line": 153 5158 "line": 152
5133 }, 5159 },
5134 "file": "src/lib/Menu.js", 5160 "file": "src/lib/Menu.js",
5135 "id": "menu.help.tos", 5161 "id": "menu.help.tos",
5136 "start": { 5162 "start": {
5137 "column": 7, 5163 "column": 7,
5138 "line": 150 5164 "line": 149
5139 } 5165 }
5140 }, 5166 },
5141 { 5167 {
5142 "defaultMessage": "!!!Privacy Statement", 5168 "defaultMessage": "!!!Privacy Statement",
5143 "end": { 5169 "end": {
5144 "column": 3, 5170 "column": 3,
5145 "line": 157 5171 "line": 156
5146 }, 5172 },
5147 "file": "src/lib/Menu.js", 5173 "file": "src/lib/Menu.js",
5148 "id": "menu.help.privacy", 5174 "id": "menu.help.privacy",
5149 "start": { 5175 "start": {
5150 "column": 11, 5176 "column": 11,
5151 "line": 154 5177 "line": 153
5152 } 5178 }
5153 }, 5179 },
5154 { 5180 {
5155 "defaultMessage": "!!!File", 5181 "defaultMessage": "!!!File",
5156 "end": { 5182 "end": {
5157 "column": 3, 5183 "column": 3,
5158 "line": 161 5184 "line": 160
5159 }, 5185 },
5160 "file": "src/lib/Menu.js", 5186 "file": "src/lib/Menu.js",
5161 "id": "menu.file", 5187 "id": "menu.file",
5162 "start": { 5188 "start": {
5163 "column": 8, 5189 "column": 8,
5164 "line": 158 5190 "line": 157
5165 } 5191 }
5166 }, 5192 },
5167 { 5193 {
5168 "defaultMessage": "!!!View", 5194 "defaultMessage": "!!!View",
5169 "end": { 5195 "end": {
5170 "column": 3, 5196 "column": 3,
5171 "line": 165 5197 "line": 164
5172 }, 5198 },
5173 "file": "src/lib/Menu.js", 5199 "file": "src/lib/Menu.js",
5174 "id": "menu.view", 5200 "id": "menu.view",
5175 "start": { 5201 "start": {
5176 "column": 8, 5202 "column": 8,
5177 "line": 162 5203 "line": 161
5178 } 5204 }
5179 }, 5205 },
5180 { 5206 {
5181 "defaultMessage": "!!!Services", 5207 "defaultMessage": "!!!Services",
5182 "end": { 5208 "end": {
5183 "column": 3, 5209 "column": 3,
5184 "line": 169 5210 "line": 168
5185 }, 5211 },
5186 "file": "src/lib/Menu.js", 5212 "file": "src/lib/Menu.js",
5187 "id": "menu.services", 5213 "id": "menu.services",
5188 "start": { 5214 "start": {
5189 "column": 12, 5215 "column": 12,
5190 "line": 166 5216 "line": 165
5191 } 5217 }
5192 }, 5218 },
5193 { 5219 {
5194 "defaultMessage": "!!!Window", 5220 "defaultMessage": "!!!Window",
5195 "end": { 5221 "end": {
5196 "column": 3, 5222 "column": 3,
5197 "line": 173 5223 "line": 172
5198 }, 5224 },
5199 "file": "src/lib/Menu.js", 5225 "file": "src/lib/Menu.js",
5200 "id": "menu.window", 5226 "id": "menu.window",
5201 "start": { 5227 "start": {
5202 "column": 10, 5228 "column": 10,
5203 "line": 170 5229 "line": 169
5204 } 5230 }
5205 }, 5231 },
5206 { 5232 {
5207 "defaultMessage": "!!!Help", 5233 "defaultMessage": "!!!Help",
5208 "end": { 5234 "end": {
5209 "column": 3, 5235 "column": 3,
5210 "line": 177 5236 "line": 176
5211 }, 5237 },
5212 "file": "src/lib/Menu.js", 5238 "file": "src/lib/Menu.js",
5213 "id": "menu.help", 5239 "id": "menu.help",
5214 "start": { 5240 "start": {
5215 "column": 8, 5241 "column": 8,
5216 "line": 174 5242 "line": 173
5217 } 5243 }
5218 }, 5244 },
5219 { 5245 {
5220 "defaultMessage": "!!!About Franz", 5246 "defaultMessage": "!!!About Franz",
5221 "end": { 5247 "end": {
5222 "column": 3, 5248 "column": 3,
5223 "line": 181 5249 "line": 180
5224 }, 5250 },
5225 "file": "src/lib/Menu.js", 5251 "file": "src/lib/Menu.js",
5226 "id": "menu.app.about", 5252 "id": "menu.app.about",
5227 "start": { 5253 "start": {
5228 "column": 9, 5254 "column": 9,
5229 "line": 178 5255 "line": 177
5230 } 5256 }
5231 }, 5257 },
5232 { 5258 {
5233 "defaultMessage": "!!!What's new?", 5259 "defaultMessage": "!!!What's new?",
5234 "end": { 5260 "end": {
5235 "column": 3, 5261 "column": 3,
5236 "line": 185 5262 "line": 184
5237 }, 5263 },
5238 "file": "src/lib/Menu.js", 5264 "file": "src/lib/Menu.js",
5239 "id": "menu.app.announcement", 5265 "id": "menu.app.announcement",
5240 "start": { 5266 "start": {
5241 "column": 16, 5267 "column": 16,
5242 "line": 182 5268 "line": 181
5243 } 5269 }
5244 }, 5270 },
5245 { 5271 {
5246 "defaultMessage": "!!!Settings", 5272 "defaultMessage": "!!!Settings",
5247 "end": { 5273 "end": {
5248 "column": 3, 5274 "column": 3,
5249 "line": 189 5275 "line": 188
5250 }, 5276 },
5251 "file": "src/lib/Menu.js", 5277 "file": "src/lib/Menu.js",
5252 "id": "menu.app.settings", 5278 "id": "menu.app.settings",
5253 "start": { 5279 "start": {
5254 "column": 12, 5280 "column": 12,
5255 "line": 186 5281 "line": 185
5256 } 5282 }
5257 }, 5283 },
5258 { 5284 {
5259 "defaultMessage": "!!!Check for updates", 5285 "defaultMessage": "!!!Check for updates",
5260 "end": { 5286 "end": {
5261 "column": 3, 5287 "column": 3,
5262 "line": 193 5288 "line": 192
5263 }, 5289 },
5264 "file": "src/lib/Menu.js", 5290 "file": "src/lib/Menu.js",
5265 "id": "menu.app.checkForUpdates", 5291 "id": "menu.app.checkForUpdates",
5266 "start": { 5292 "start": {
5267 "column": 19, 5293 "column": 19,
5268 "line": 190 5294 "line": 189
5269 } 5295 }
5270 }, 5296 },
5271 { 5297 {
5272 "defaultMessage": "!!!Hide", 5298 "defaultMessage": "!!!Hide",
5273 "end": { 5299 "end": {
5274 "column": 3, 5300 "column": 3,
5275 "line": 197 5301 "line": 196
5276 }, 5302 },
5277 "file": "src/lib/Menu.js", 5303 "file": "src/lib/Menu.js",
5278 "id": "menu.app.hide", 5304 "id": "menu.app.hide",
5279 "start": { 5305 "start": {
5280 "column": 8, 5306 "column": 8,
5281 "line": 194 5307 "line": 193
5282 } 5308 }
5283 }, 5309 },
5284 { 5310 {
5285 "defaultMessage": "!!!Hide Others", 5311 "defaultMessage": "!!!Hide Others",
5286 "end": { 5312 "end": {
5287 "column": 3, 5313 "column": 3,
5288 "line": 201 5314 "line": 200
5289 }, 5315 },
5290 "file": "src/lib/Menu.js", 5316 "file": "src/lib/Menu.js",
5291 "id": "menu.app.hideOthers", 5317 "id": "menu.app.hideOthers",
5292 "start": { 5318 "start": {
5293 "column": 14, 5319 "column": 14,
5294 "line": 198 5320 "line": 197
5295 } 5321 }
5296 }, 5322 },
5297 { 5323 {
5298 "defaultMessage": "!!!Unhide", 5324 "defaultMessage": "!!!Unhide",
5299 "end": { 5325 "end": {
5300 "column": 3, 5326 "column": 3,
5301 "line": 205 5327 "line": 204
5302 }, 5328 },
5303 "file": "src/lib/Menu.js", 5329 "file": "src/lib/Menu.js",
5304 "id": "menu.app.unhide", 5330 "id": "menu.app.unhide",
5305 "start": { 5331 "start": {
5306 "column": 10, 5332 "column": 10,
5307 "line": 202 5333 "line": 201
5308 } 5334 }
5309 }, 5335 },
5310 { 5336 {
5311 "defaultMessage": "!!!Quit", 5337 "defaultMessage": "!!!Quit",
5312 "end": { 5338 "end": {
5313 "column": 3, 5339 "column": 3,
5314 "line": 209 5340 "line": 208
5315 }, 5341 },
5316 "file": "src/lib/Menu.js", 5342 "file": "src/lib/Menu.js",
5317 "id": "menu.app.quit", 5343 "id": "menu.app.quit",
5318 "start": { 5344 "start": {
5319 "column": 8, 5345 "column": 8,
5320 "line": 206 5346 "line": 205
5321 } 5347 }
5322 }, 5348 },
5323 { 5349 {
5324 "defaultMessage": "!!!Add New Service...", 5350 "defaultMessage": "!!!Add New Service...",
5325 "end": { 5351 "end": {
5326 "column": 3, 5352 "column": 3,
5327 "line": 213 5353 "line": 212
5328 }, 5354 },
5329 "file": "src/lib/Menu.js", 5355 "file": "src/lib/Menu.js",
5330 "id": "menu.services.addNewService", 5356 "id": "menu.services.addNewService",
5331 "start": { 5357 "start": {
5332 "column": 17, 5358 "column": 17,
5333 "line": 210 5359 "line": 209
5334 } 5360 }
5335 }, 5361 },
5336 { 5362 {
5337 "defaultMessage": "!!!Add New Workspace...", 5363 "defaultMessage": "!!!Add New Workspace...",
5338 "end": { 5364 "end": {
5339 "column": 3, 5365 "column": 3,
5340 "line": 217 5366 "line": 216
5341 }, 5367 },
5342 "file": "src/lib/Menu.js", 5368 "file": "src/lib/Menu.js",
5343 "id": "menu.workspaces.addNewWorkspace", 5369 "id": "menu.workspaces.addNewWorkspace",
5344 "start": { 5370 "start": {
5345 "column": 19, 5371 "column": 19,
5346 "line": 214 5372 "line": 213
5347 } 5373 }
5348 }, 5374 },
5349 { 5375 {
5350 "defaultMessage": "!!!Open workspace drawer", 5376 "defaultMessage": "!!!Open workspace drawer",
5351 "end": { 5377 "end": {
5352 "column": 3, 5378 "column": 3,
5353 "line": 221 5379 "line": 220
5354 }, 5380 },
5355 "file": "src/lib/Menu.js", 5381 "file": "src/lib/Menu.js",
5356 "id": "menu.workspaces.openWorkspaceDrawer", 5382 "id": "menu.workspaces.openWorkspaceDrawer",
5357 "start": { 5383 "start": {
5358 "column": 23, 5384 "column": 23,
5359 "line": 218 5385 "line": 217
5360 } 5386 }
5361 }, 5387 },
5362 { 5388 {
5363 "defaultMessage": "!!!Close workspace drawer", 5389 "defaultMessage": "!!!Close workspace drawer",
5364 "end": { 5390 "end": {
5365 "column": 3, 5391 "column": 3,
5366 "line": 225 5392 "line": 224
5367 }, 5393 },
5368 "file": "src/lib/Menu.js", 5394 "file": "src/lib/Menu.js",
5369 "id": "menu.workspaces.closeWorkspaceDrawer", 5395 "id": "menu.workspaces.closeWorkspaceDrawer",
5370 "start": { 5396 "start": {
5371 "column": 24, 5397 "column": 24,
5372 "line": 222 5398 "line": 221
5373 } 5399 }
5374 }, 5400 },
5375 { 5401 {
5376 "defaultMessage": "!!!Activate next service...", 5402 "defaultMessage": "!!!Activate next service...",
5377 "end": { 5403 "end": {
5378 "column": 3, 5404 "column": 3,
5379 "line": 229 5405 "line": 228
5380 }, 5406 },
5381 "file": "src/lib/Menu.js", 5407 "file": "src/lib/Menu.js",
5382 "id": "menu.services.setNextServiceActive", 5408 "id": "menu.services.setNextServiceActive",
5383 "start": { 5409 "start": {
5384 "column": 23, 5410 "column": 23,
5385 "line": 226 5411 "line": 225
5386 } 5412 }
5387 }, 5413 },
5388 { 5414 {
5389 "defaultMessage": "!!!Activate previous service...", 5415 "defaultMessage": "!!!Activate previous service...",
5390 "end": { 5416 "end": {
5391 "column": 3, 5417 "column": 3,
5392 "line": 233 5418 "line": 232
5393 }, 5419 },
5394 "file": "src/lib/Menu.js", 5420 "file": "src/lib/Menu.js",
5395 "id": "menu.services.activatePreviousService", 5421 "id": "menu.services.activatePreviousService",
5396 "start": { 5422 "start": {
5397 "column": 27, 5423 "column": 27,
5398 "line": 230 5424 "line": 229
5399 } 5425 }
5400 }, 5426 },
5401 { 5427 {
5402 "defaultMessage": "!!!Disable notifications & audio", 5428 "defaultMessage": "!!!Disable notifications & audio",
5403 "end": { 5429 "end": {
5404 "column": 3, 5430 "column": 3,
5405 "line": 237 5431 "line": 236
5406 }, 5432 },
5407 "file": "src/lib/Menu.js", 5433 "file": "src/lib/Menu.js",
5408 "id": "sidebar.muteApp", 5434 "id": "sidebar.muteApp",
5409 "start": { 5435 "start": {
5410 "column": 11, 5436 "column": 11,
5411 "line": 234 5437 "line": 233
5412 } 5438 }
5413 }, 5439 },
5414 { 5440 {
5415 "defaultMessage": "!!!Enable notifications & audio", 5441 "defaultMessage": "!!!Enable notifications & audio",
5416 "end": { 5442 "end": {
5417 "column": 3, 5443 "column": 3,
5418 "line": 241 5444 "line": 240
5419 }, 5445 },
5420 "file": "src/lib/Menu.js", 5446 "file": "src/lib/Menu.js",
5421 "id": "sidebar.unmuteApp", 5447 "id": "sidebar.unmuteApp",
5422 "start": { 5448 "start": {
5423 "column": 13, 5449 "column": 13,
5424 "line": 238 5450 "line": 237
5425 } 5451 }
5426 }, 5452 },
5427 { 5453 {
5428 "defaultMessage": "!!!Workspaces", 5454 "defaultMessage": "!!!Workspaces",
5429 "end": { 5455 "end": {
5430 "column": 3, 5456 "column": 3,
5431 "line": 245 5457 "line": 244
5432 }, 5458 },
5433 "file": "src/lib/Menu.js", 5459 "file": "src/lib/Menu.js",
5434 "id": "menu.workspaces", 5460 "id": "menu.workspaces",
5435 "start": { 5461 "start": {
5436 "column": 14, 5462 "column": 14,
5437 "line": 242 5463 "line": 241
5438 } 5464 }
5439 }, 5465 },
5440 { 5466 {
5441 "defaultMessage": "!!!Default", 5467 "defaultMessage": "!!!Default",
5442 "end": { 5468 "end": {
5443 "column": 3, 5469 "column": 3,
5444 "line": 249 5470 "line": 248
5445 }, 5471 },
5446 "file": "src/lib/Menu.js", 5472 "file": "src/lib/Menu.js",
5447 "id": "menu.workspaces.defaultWorkspace", 5473 "id": "menu.workspaces.defaultWorkspace",
5448 "start": { 5474 "start": {
5449 "column": 20, 5475 "column": 20,
5450 "line": 246 5476 "line": 245
5451 } 5477 }
5452 }, 5478 },
5453 { 5479 {
5454 "defaultMessage": "!!!Todos", 5480 "defaultMessage": "!!!Todos",
5455 "end": { 5481 "end": {
5456 "column": 3, 5482 "column": 3,
5457 "line": 253 5483 "line": 252
5458 }, 5484 },
5459 "file": "src/lib/Menu.js", 5485 "file": "src/lib/Menu.js",
5460 "id": "menu.todos", 5486 "id": "menu.todos",
5461 "start": { 5487 "start": {
5462 "column": 9, 5488 "column": 9,
5463 "line": 250 5489 "line": 249
5464 } 5490 }
5465 }, 5491 },
5466 { 5492 {
5467 "defaultMessage": "!!!Open Todos drawer", 5493 "defaultMessage": "!!!Open Todos drawer",
5468 "end": { 5494 "end": {
5469 "column": 3, 5495 "column": 3,
5470 "line": 257 5496 "line": 256
5471 }, 5497 },
5472 "file": "src/lib/Menu.js", 5498 "file": "src/lib/Menu.js",
5473 "id": "menu.Todoss.openTodosDrawer", 5499 "id": "menu.Todoss.openTodosDrawer",
5474 "start": { 5500 "start": {
5475 "column": 19, 5501 "column": 19,
5476 "line": 254 5502 "line": 253
5477 } 5503 }
5478 }, 5504 },
5479 { 5505 {
5480 "defaultMessage": "!!!Close Todos drawer", 5506 "defaultMessage": "!!!Close Todos drawer",
5481 "end": { 5507 "end": {
5482 "column": 3, 5508 "column": 3,
5483 "line": 261 5509 "line": 260
5484 }, 5510 },
5485 "file": "src/lib/Menu.js", 5511 "file": "src/lib/Menu.js",
5486 "id": "menu.Todoss.closeTodosDrawer", 5512 "id": "menu.Todoss.closeTodosDrawer",
5487 "start": { 5513 "start": {
5488 "column": 20, 5514 "column": 20,
5489 "line": 258 5515 "line": 257
5516 }
5517 },
5518 {
5519 "defaultMessage": "!!!Enable Todos",
5520 "end": {
5521 "column": 3,
5522 "line": 264
5523 },
5524 "file": "src/lib/Menu.js",
5525 "id": "menu.todos.enableTodos",
5526 "start": {
5527 "column": 15,
5528 "line": 261
5490 } 5529 }
5491 } 5530 }
5492 ], 5531 ],
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 991af277b..dcb9d92a2 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -93,6 +93,7 @@
93 "menu.services.addNewService": "Add New Service...", 93 "menu.services.addNewService": "Add New Service...",
94 "menu.services.setNextServiceActive": "Activate next service", 94 "menu.services.setNextServiceActive": "Activate next service",
95 "menu.todos": "Todos", 95 "menu.todos": "Todos",
96 "menu.todos.enableTodos": "Enable Todos",
96 "menu.view": "View", 97 "menu.view": "View",
97 "menu.view.enterFullScreen": "Enter Full Screen", 98 "menu.view.enterFullScreen": "Enter Full Screen",
98 "menu.view.exitFullScreen": "Exit Full Screen", 99 "menu.view.exitFullScreen": "Exit Full Screen",
@@ -329,8 +330,10 @@
329 "settings.workspaces.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.", 330 "settings.workspaces.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.",
330 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 331 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces",
331 "sidebar.addNewService": "Add new service", 332 "sidebar.addNewService": "Add new service",
333 "sidebar.closeTodosDrawer": "Close Franz Todos",
332 "sidebar.closeWorkspaceDrawer": "Close workspace drawer", 334 "sidebar.closeWorkspaceDrawer": "Close workspace drawer",
333 "sidebar.muteApp": "Disable notifications & audio", 335 "sidebar.muteApp": "Disable notifications & audio",
336 "sidebar.openTodosDrawer": "Open Franz Todos",
334 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 337 "sidebar.openWorkspaceDrawer": "Open workspace drawer",
335 "sidebar.settings": "Settings", 338 "sidebar.settings": "Settings",
336 "sidebar.unmuteApp": "Enable notifications & audio", 339 "sidebar.unmuteApp": "Enable notifications & audio",
diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json
index d67adc96e..837dc54bc 100644
--- a/src/i18n/messages/src/components/layout/Sidebar.json
+++ b/src/i18n/messages/src/components/layout/Sidebar.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Settings", 4 "defaultMessage": "!!!Settings",
5 "file": "src/components/layout/Sidebar.js", 5 "file": "src/components/layout/Sidebar.js",
6 "start": { 6 "start": {
7 "line": 13, 7 "line": 15,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 16, 11 "line": 18,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Add new service", 17 "defaultMessage": "!!!Add new service",
18 "file": "src/components/layout/Sidebar.js", 18 "file": "src/components/layout/Sidebar.js",
19 "start": { 19 "start": {
20 "line": 17, 20 "line": 19,
21 "column": 17 21 "column": 17
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 20, 24 "line": 22,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Disable notifications & audio", 30 "defaultMessage": "!!!Disable notifications & audio",
31 "file": "src/components/layout/Sidebar.js", 31 "file": "src/components/layout/Sidebar.js",
32 "start": { 32 "start": {
33 "line": 21, 33 "line": 23,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 24, 37 "line": 26,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Enable notifications & audio", 43 "defaultMessage": "!!!Enable notifications & audio",
44 "file": "src/components/layout/Sidebar.js", 44 "file": "src/components/layout/Sidebar.js",
45 "start": { 45 "start": {
46 "line": 25, 46 "line": 27,
47 "column": 10 47 "column": 10
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 28, 50 "line": 30,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Open workspace drawer", 56 "defaultMessage": "!!!Open workspace drawer",
57 "file": "src/components/layout/Sidebar.js", 57 "file": "src/components/layout/Sidebar.js",
58 "start": { 58 "start": {
59 "line": 29, 59 "line": 31,
60 "column": 23 60 "column": 23
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 32, 63 "line": 34,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,37 @@
69 "defaultMessage": "!!!Close workspace drawer", 69 "defaultMessage": "!!!Close workspace drawer",
70 "file": "src/components/layout/Sidebar.js", 70 "file": "src/components/layout/Sidebar.js",
71 "start": { 71 "start": {
72 "line": 33, 72 "line": 35,
73 "column": 24 73 "column": 24
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 36, 76 "line": 38,
77 "column": 3
78 }
79 },
80 {
81 "id": "sidebar.openTodosDrawer",
82 "defaultMessage": "!!!Open Franz Todos",
83 "file": "src/components/layout/Sidebar.js",
84 "start": {
85 "line": 39,
86 "column": 19
87 },
88 "end": {
89 "line": 42,
90 "column": 3
91 }
92 },
93 {
94 "id": "sidebar.closeTodosDrawer",
95 "defaultMessage": "!!!Close Franz Todos",
96 "file": "src/components/layout/Sidebar.js",
97 "start": {
98 "line": 43,
99 "column": 20
100 },
101 "end": {
102 "line": 46,
77 "column": 3 103 "column": 3
78 } 104 }
79 } 105 }
diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json
index 9cc3325d1..7f230e82a 100644
--- a/src/i18n/messages/src/features/todos/components/TodosWebview.json
+++ b/src/i18n/messages/src/features/todos/components/TodosWebview.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Franz Todos are available to premium users now!", 4 "defaultMessage": "!!!Franz Todos are available to premium users now!",
5 "file": "src/features/todos/components/TodosWebview.js", 5 "file": "src/features/todos/components/TodosWebview.js",
6 "start": { 6 "start": {
7 "line": 18, 7 "line": 15,
8 "column": 15 8 "column": 15
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 21, 11 "line": 18,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Upgrade Account", 17 "defaultMessage": "!!!Upgrade Account",
18 "file": "src/features/todos/components/TodosWebview.js", 18 "file": "src/features/todos/components/TodosWebview.js",
19 "start": { 19 "start": {
20 "line": 22, 20 "line": 19,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 25, 24 "line": 22,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Everyone else will have to wait a little longer.", 30 "defaultMessage": "!!!Everyone else will have to wait a little longer.",
31 "file": "src/features/todos/components/TodosWebview.js", 31 "file": "src/features/todos/components/TodosWebview.js",
32 "start": { 32 "start": {
33 "line": 26, 33 "line": 23,
34 "column": 15 34 "column": 15
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 29, 37 "line": 26,
38 "column": 3 38 "column": 3
39 } 39 }
40 } 40 }
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index cee46608c..26850c5b3 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Edit", 4 "defaultMessage": "!!!Edit",
5 "file": "src/lib/Menu.js", 5 "file": "src/lib/Menu.js",
6 "start": { 6 "start": {
7 "line": 18, 7 "line": 17,
8 "column": 8 8 "column": 8
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 21, 11 "line": 20,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Undo", 17 "defaultMessage": "!!!Undo",
18 "file": "src/lib/Menu.js", 18 "file": "src/lib/Menu.js",
19 "start": { 19 "start": {
20 "line": 22, 20 "line": 21,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 25, 24 "line": 24,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Redo", 30 "defaultMessage": "!!!Redo",
31 "file": "src/lib/Menu.js", 31 "file": "src/lib/Menu.js",
32 "start": { 32 "start": {
33 "line": 26, 33 "line": 25,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 29, 37 "line": 28,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Cut", 43 "defaultMessage": "!!!Cut",
44 "file": "src/lib/Menu.js", 44 "file": "src/lib/Menu.js",
45 "start": { 45 "start": {
46 "line": 30, 46 "line": 29,
47 "column": 7 47 "column": 7
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 33, 50 "line": 32,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Copy", 56 "defaultMessage": "!!!Copy",
57 "file": "src/lib/Menu.js", 57 "file": "src/lib/Menu.js",
58 "start": { 58 "start": {
59 "line": 34, 59 "line": 33,
60 "column": 8 60 "column": 8
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 37, 63 "line": 36,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Paste", 69 "defaultMessage": "!!!Paste",
70 "file": "src/lib/Menu.js", 70 "file": "src/lib/Menu.js",
71 "start": { 71 "start": {
72 "line": 38, 72 "line": 37,
73 "column": 9 73 "column": 9
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 41, 76 "line": 40,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Paste And Match Style", 82 "defaultMessage": "!!!Paste And Match Style",
83 "file": "src/lib/Menu.js", 83 "file": "src/lib/Menu.js",
84 "start": { 84 "start": {
85 "line": 42, 85 "line": 41,
86 "column": 22 86 "column": 22
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 45, 89 "line": 44,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Delete", 95 "defaultMessage": "!!!Delete",
96 "file": "src/lib/Menu.js", 96 "file": "src/lib/Menu.js",
97 "start": { 97 "start": {
98 "line": 46, 98 "line": 45,
99 "column": 10 99 "column": 10
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 49, 102 "line": 48,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Select All", 108 "defaultMessage": "!!!Select All",
109 "file": "src/lib/Menu.js", 109 "file": "src/lib/Menu.js",
110 "start": { 110 "start": {
111 "line": 50, 111 "line": 49,
112 "column": 13 112 "column": 13
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 53, 115 "line": 52,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Speech", 121 "defaultMessage": "!!!Speech",
122 "file": "src/lib/Menu.js", 122 "file": "src/lib/Menu.js",
123 "start": { 123 "start": {
124 "line": 54, 124 "line": 53,
125 "column": 10 125 "column": 10
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 57, 128 "line": 56,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Start Speaking", 134 "defaultMessage": "!!!Start Speaking",
135 "file": "src/lib/Menu.js", 135 "file": "src/lib/Menu.js",
136 "start": { 136 "start": {
137 "line": 58, 137 "line": 57,
138 "column": 17 138 "column": 17
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 61, 141 "line": 60,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,11 +147,11 @@
147 "defaultMessage": "!!!Stop Speaking", 147 "defaultMessage": "!!!Stop Speaking",
148 "file": "src/lib/Menu.js", 148 "file": "src/lib/Menu.js",
149 "start": { 149 "start": {
150 "line": 62, 150 "line": 61,
151 "column": 16 151 "column": 16
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 65, 154 "line": 64,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
@@ -160,11 +160,11 @@
160 "defaultMessage": "!!!Start Dictation", 160 "defaultMessage": "!!!Start Dictation",
161 "file": "src/lib/Menu.js", 161 "file": "src/lib/Menu.js",
162 "start": { 162 "start": {
163 "line": 66, 163 "line": 65,
164 "column": 18 164 "column": 18
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 69, 167 "line": 68,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
@@ -173,11 +173,11 @@
173 "defaultMessage": "!!!Emoji & Symbols", 173 "defaultMessage": "!!!Emoji & Symbols",
174 "file": "src/lib/Menu.js", 174 "file": "src/lib/Menu.js",
175 "start": { 175 "start": {
176 "line": 70, 176 "line": 69,
177 "column": 16 177 "column": 16
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 73, 180 "line": 72,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!Actual Size", 186 "defaultMessage": "!!!Actual Size",
187 "file": "src/lib/Menu.js", 187 "file": "src/lib/Menu.js",
188 "start": { 188 "start": {
189 "line": 74, 189 "line": 73,
190 "column": 13 190 "column": 13
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 77, 193 "line": 76,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Zoom In", 199 "defaultMessage": "!!!Zoom In",
200 "file": "src/lib/Menu.js", 200 "file": "src/lib/Menu.js",
201 "start": { 201 "start": {
202 "line": 78, 202 "line": 77,
203 "column": 10 203 "column": 10
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 81, 206 "line": 80,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!Zoom Out", 212 "defaultMessage": "!!!Zoom Out",
213 "file": "src/lib/Menu.js", 213 "file": "src/lib/Menu.js",
214 "start": { 214 "start": {
215 "line": 82, 215 "line": 81,
216 "column": 11 216 "column": 11
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 85, 219 "line": 84,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!Enter Full Screen", 225 "defaultMessage": "!!!Enter Full Screen",
226 "file": "src/lib/Menu.js", 226 "file": "src/lib/Menu.js",
227 "start": { 227 "start": {
228 "line": 86, 228 "line": 85,
229 "column": 19 229 "column": 19
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 89, 232 "line": 88,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!Exit Full Screen", 238 "defaultMessage": "!!!Exit Full Screen",
239 "file": "src/lib/Menu.js", 239 "file": "src/lib/Menu.js",
240 "start": { 240 "start": {
241 "line": 90, 241 "line": 89,
242 "column": 18 242 "column": 18
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 93, 245 "line": 92,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!Toggle Full Screen", 251 "defaultMessage": "!!!Toggle Full Screen",
252 "file": "src/lib/Menu.js", 252 "file": "src/lib/Menu.js",
253 "start": { 253 "start": {
254 "line": 94, 254 "line": 93,
255 "column": 20 255 "column": 20
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 97, 258 "line": 96,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!Toggle Developer Tools", 264 "defaultMessage": "!!!Toggle Developer Tools",
265 "file": "src/lib/Menu.js", 265 "file": "src/lib/Menu.js",
266 "start": { 266 "start": {
267 "line": 98, 267 "line": 97,
268 "column": 18 268 "column": 18
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 101, 271 "line": 100,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!Toggle Todos Developer Tools", 277 "defaultMessage": "!!!Toggle Todos Developer Tools",
278 "file": "src/lib/Menu.js", 278 "file": "src/lib/Menu.js",
279 "start": { 279 "start": {
280 "line": 102, 280 "line": 101,
281 "column": 23 281 "column": 23
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 105, 284 "line": 104,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,11 +290,11 @@
290 "defaultMessage": "!!!Toggle Service Developer Tools", 290 "defaultMessage": "!!!Toggle Service Developer Tools",
291 "file": "src/lib/Menu.js", 291 "file": "src/lib/Menu.js",
292 "start": { 292 "start": {
293 "line": 106, 293 "line": 105,
294 "column": 25 294 "column": 25
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 109, 297 "line": 108,
298 "column": 3 298 "column": 3
299 } 299 }
300 }, 300 },
@@ -303,11 +303,11 @@
303 "defaultMessage": "!!!Reload Service", 303 "defaultMessage": "!!!Reload Service",
304 "file": "src/lib/Menu.js", 304 "file": "src/lib/Menu.js",
305 "start": { 305 "start": {
306 "line": 110, 306 "line": 109,
307 "column": 17 307 "column": 17
308 }, 308 },
309 "end": { 309 "end": {
310 "line": 113, 310 "line": 112,
311 "column": 3 311 "column": 3
312 } 312 }
313 }, 313 },
@@ -316,11 +316,11 @@
316 "defaultMessage": "!!!Reload Franz", 316 "defaultMessage": "!!!Reload Franz",
317 "file": "src/lib/Menu.js", 317 "file": "src/lib/Menu.js",
318 "start": { 318 "start": {
319 "line": 114, 319 "line": 113,
320 "column": 15 320 "column": 15
321 }, 321 },
322 "end": { 322 "end": {
323 "line": 117, 323 "line": 116,
324 "column": 3 324 "column": 3
325 } 325 }
326 }, 326 },
@@ -329,11 +329,11 @@
329 "defaultMessage": "!!!Minimize", 329 "defaultMessage": "!!!Minimize",
330 "file": "src/lib/Menu.js", 330 "file": "src/lib/Menu.js",
331 "start": { 331 "start": {
332 "line": 118, 332 "line": 117,
333 "column": 12 333 "column": 12
334 }, 334 },
335 "end": { 335 "end": {
336 "line": 121, 336 "line": 120,
337 "column": 3 337 "column": 3
338 } 338 }
339 }, 339 },
@@ -342,11 +342,11 @@
342 "defaultMessage": "!!!Close", 342 "defaultMessage": "!!!Close",
343 "file": "src/lib/Menu.js", 343 "file": "src/lib/Menu.js",
344 "start": { 344 "start": {
345 "line": 122, 345 "line": 121,
346 "column": 9 346 "column": 9
347 }, 347 },
348 "end": { 348 "end": {
349 "line": 125, 349 "line": 124,
350 "column": 3 350 "column": 3
351 } 351 }
352 }, 352 },
@@ -355,11 +355,11 @@
355 "defaultMessage": "!!!Learn More", 355 "defaultMessage": "!!!Learn More",
356 "file": "src/lib/Menu.js", 356 "file": "src/lib/Menu.js",
357 "start": { 357 "start": {
358 "line": 126, 358 "line": 125,
359 "column": 13 359 "column": 13
360 }, 360 },
361 "end": { 361 "end": {
362 "line": 129, 362 "line": 128,
363 "column": 3 363 "column": 3
364 } 364 }
365 }, 365 },
@@ -368,11 +368,11 @@
368 "defaultMessage": "!!!Changelog", 368 "defaultMessage": "!!!Changelog",
369 "file": "src/lib/Menu.js", 369 "file": "src/lib/Menu.js",
370 "start": { 370 "start": {
371 "line": 130, 371 "line": 129,
372 "column": 13 372 "column": 13
373 }, 373 },
374 "end": { 374 "end": {
375 "line": 133, 375 "line": 132,
376 "column": 3 376 "column": 3
377 } 377 }
378 }, 378 },
@@ -381,11 +381,11 @@
381 "defaultMessage": "!!!Support", 381 "defaultMessage": "!!!Support",
382 "file": "src/lib/Menu.js", 382 "file": "src/lib/Menu.js",
383 "start": { 383 "start": {
384 "line": 134, 384 "line": 133,
385 "column": 11 385 "column": 11
386 }, 386 },
387 "end": { 387 "end": {
388 "line": 137, 388 "line": 136,
389 "column": 3 389 "column": 3
390 } 390 }
391 }, 391 },
@@ -394,11 +394,11 @@
394 "defaultMessage": "!!!Copy Debug Information", 394 "defaultMessage": "!!!Copy Debug Information",
395 "file": "src/lib/Menu.js", 395 "file": "src/lib/Menu.js",
396 "start": { 396 "start": {
397 "line": 138, 397 "line": 137,
398 "column": 13 398 "column": 13
399 }, 399 },
400 "end": { 400 "end": {
401 "line": 141, 401 "line": 140,
402 "column": 3 402 "column": 3
403 } 403 }
404 }, 404 },
@@ -407,11 +407,11 @@
407 "defaultMessage": "!!!Franz Debug Information", 407 "defaultMessage": "!!!Franz Debug Information",
408 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
409 "start": { 409 "start": {
410 "line": 142, 410 "line": 141,
411 "column": 27 411 "column": 27
412 }, 412 },
413 "end": { 413 "end": {
414 "line": 145, 414 "line": 144,
415 "column": 3 415 "column": 3
416 } 416 }
417 }, 417 },
@@ -420,11 +420,11 @@
420 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 420 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
421 "file": "src/lib/Menu.js", 421 "file": "src/lib/Menu.js",
422 "start": { 422 "start": {
423 "line": 146, 423 "line": 145,
424 "column": 23 424 "column": 23
425 }, 425 },
426 "end": { 426 "end": {
427 "line": 149, 427 "line": 148,
428 "column": 3 428 "column": 3
429 } 429 }
430 }, 430 },
@@ -433,11 +433,11 @@
433 "defaultMessage": "!!!Terms of Service", 433 "defaultMessage": "!!!Terms of Service",
434 "file": "src/lib/Menu.js", 434 "file": "src/lib/Menu.js",
435 "start": { 435 "start": {
436 "line": 150, 436 "line": 149,
437 "column": 7 437 "column": 7
438 }, 438 },
439 "end": { 439 "end": {
440 "line": 153, 440 "line": 152,
441 "column": 3 441 "column": 3
442 } 442 }
443 }, 443 },
@@ -446,11 +446,11 @@
446 "defaultMessage": "!!!Privacy Statement", 446 "defaultMessage": "!!!Privacy Statement",
447 "file": "src/lib/Menu.js", 447 "file": "src/lib/Menu.js",
448 "start": { 448 "start": {
449 "line": 154, 449 "line": 153,
450 "column": 11 450 "column": 11
451 }, 451 },
452 "end": { 452 "end": {
453 "line": 157, 453 "line": 156,
454 "column": 3 454 "column": 3
455 } 455 }
456 }, 456 },
@@ -459,11 +459,11 @@
459 "defaultMessage": "!!!File", 459 "defaultMessage": "!!!File",
460 "file": "src/lib/Menu.js", 460 "file": "src/lib/Menu.js",
461 "start": { 461 "start": {
462 "line": 158, 462 "line": 157,
463 "column": 8 463 "column": 8
464 }, 464 },
465 "end": { 465 "end": {
466 "line": 161, 466 "line": 160,
467 "column": 3 467 "column": 3
468 } 468 }
469 }, 469 },
@@ -472,11 +472,11 @@
472 "defaultMessage": "!!!View", 472 "defaultMessage": "!!!View",
473 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
474 "start": { 474 "start": {
475 "line": 162, 475 "line": 161,
476 "column": 8 476 "column": 8
477 }, 477 },
478 "end": { 478 "end": {
479 "line": 165, 479 "line": 164,
480 "column": 3 480 "column": 3
481 } 481 }
482 }, 482 },
@@ -485,11 +485,11 @@
485 "defaultMessage": "!!!Services", 485 "defaultMessage": "!!!Services",
486 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
487 "start": { 487 "start": {
488 "line": 166, 488 "line": 165,
489 "column": 12 489 "column": 12
490 }, 490 },
491 "end": { 491 "end": {
492 "line": 169, 492 "line": 168,
493 "column": 3 493 "column": 3
494 } 494 }
495 }, 495 },
@@ -498,11 +498,11 @@
498 "defaultMessage": "!!!Window", 498 "defaultMessage": "!!!Window",
499 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
500 "start": { 500 "start": {
501 "line": 170, 501 "line": 169,
502 "column": 10 502 "column": 10
503 }, 503 },
504 "end": { 504 "end": {
505 "line": 173, 505 "line": 172,
506 "column": 3 506 "column": 3
507 } 507 }
508 }, 508 },
@@ -511,11 +511,11 @@
511 "defaultMessage": "!!!Help", 511 "defaultMessage": "!!!Help",
512 "file": "src/lib/Menu.js", 512 "file": "src/lib/Menu.js",
513 "start": { 513 "start": {
514 "line": 174, 514 "line": 173,
515 "column": 8 515 "column": 8
516 }, 516 },
517 "end": { 517 "end": {
518 "line": 177, 518 "line": 176,
519 "column": 3 519 "column": 3
520 } 520 }
521 }, 521 },
@@ -524,11 +524,11 @@
524 "defaultMessage": "!!!About Franz", 524 "defaultMessage": "!!!About Franz",
525 "file": "src/lib/Menu.js", 525 "file": "src/lib/Menu.js",
526 "start": { 526 "start": {
527 "line": 178, 527 "line": 177,
528 "column": 9 528 "column": 9
529 }, 529 },
530 "end": { 530 "end": {
531 "line": 181, 531 "line": 180,
532 "column": 3 532 "column": 3
533 } 533 }
534 }, 534 },
@@ -537,11 +537,11 @@
537 "defaultMessage": "!!!What's new?", 537 "defaultMessage": "!!!What's new?",
538 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
539 "start": { 539 "start": {
540 "line": 182, 540 "line": 181,
541 "column": 16 541 "column": 16
542 }, 542 },
543 "end": { 543 "end": {
544 "line": 185, 544 "line": 184,
545 "column": 3 545 "column": 3
546 } 546 }
547 }, 547 },
@@ -550,11 +550,11 @@
550 "defaultMessage": "!!!Settings", 550 "defaultMessage": "!!!Settings",
551 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
552 "start": { 552 "start": {
553 "line": 186, 553 "line": 185,
554 "column": 12 554 "column": 12
555 }, 555 },
556 "end": { 556 "end": {
557 "line": 189, 557 "line": 188,
558 "column": 3 558 "column": 3
559 } 559 }
560 }, 560 },
@@ -563,11 +563,11 @@
563 "defaultMessage": "!!!Check for updates", 563 "defaultMessage": "!!!Check for updates",
564 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
565 "start": { 565 "start": {
566 "line": 190, 566 "line": 189,
567 "column": 19 567 "column": 19
568 }, 568 },
569 "end": { 569 "end": {
570 "line": 193, 570 "line": 192,
571 "column": 3 571 "column": 3
572 } 572 }
573 }, 573 },
@@ -576,11 +576,11 @@
576 "defaultMessage": "!!!Hide", 576 "defaultMessage": "!!!Hide",
577 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
578 "start": { 578 "start": {
579 "line": 194, 579 "line": 193,
580 "column": 8 580 "column": 8
581 }, 581 },
582 "end": { 582 "end": {
583 "line": 197, 583 "line": 196,
584 "column": 3 584 "column": 3
585 } 585 }
586 }, 586 },
@@ -589,11 +589,11 @@
589 "defaultMessage": "!!!Hide Others", 589 "defaultMessage": "!!!Hide Others",
590 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
591 "start": { 591 "start": {
592 "line": 198, 592 "line": 197,
593 "column": 14 593 "column": 14
594 }, 594 },
595 "end": { 595 "end": {
596 "line": 201, 596 "line": 200,
597 "column": 3 597 "column": 3
598 } 598 }
599 }, 599 },
@@ -602,11 +602,11 @@
602 "defaultMessage": "!!!Unhide", 602 "defaultMessage": "!!!Unhide",
603 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
604 "start": { 604 "start": {
605 "line": 202, 605 "line": 201,
606 "column": 10 606 "column": 10
607 }, 607 },
608 "end": { 608 "end": {
609 "line": 205, 609 "line": 204,
610 "column": 3 610 "column": 3
611 } 611 }
612 }, 612 },
@@ -615,11 +615,11 @@
615 "defaultMessage": "!!!Quit", 615 "defaultMessage": "!!!Quit",
616 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
617 "start": { 617 "start": {
618 "line": 206, 618 "line": 205,
619 "column": 8 619 "column": 8
620 }, 620 },
621 "end": { 621 "end": {
622 "line": 209, 622 "line": 208,
623 "column": 3 623 "column": 3
624 } 624 }
625 }, 625 },
@@ -628,11 +628,11 @@
628 "defaultMessage": "!!!Add New Service...", 628 "defaultMessage": "!!!Add New Service...",
629 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
630 "start": { 630 "start": {
631 "line": 210, 631 "line": 209,
632 "column": 17 632 "column": 17
633 }, 633 },
634 "end": { 634 "end": {
635 "line": 213, 635 "line": 212,
636 "column": 3 636 "column": 3
637 } 637 }
638 }, 638 },
@@ -641,11 +641,11 @@
641 "defaultMessage": "!!!Add New Workspace...", 641 "defaultMessage": "!!!Add New Workspace...",
642 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
643 "start": { 643 "start": {
644 "line": 214, 644 "line": 213,
645 "column": 19 645 "column": 19
646 }, 646 },
647 "end": { 647 "end": {
648 "line": 217, 648 "line": 216,
649 "column": 3 649 "column": 3
650 } 650 }
651 }, 651 },
@@ -654,11 +654,11 @@
654 "defaultMessage": "!!!Open workspace drawer", 654 "defaultMessage": "!!!Open workspace drawer",
655 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
656 "start": { 656 "start": {
657 "line": 218, 657 "line": 217,
658 "column": 23 658 "column": 23
659 }, 659 },
660 "end": { 660 "end": {
661 "line": 221, 661 "line": 220,
662 "column": 3 662 "column": 3
663 } 663 }
664 }, 664 },
@@ -667,11 +667,11 @@
667 "defaultMessage": "!!!Close workspace drawer", 667 "defaultMessage": "!!!Close workspace drawer",
668 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
669 "start": { 669 "start": {
670 "line": 222, 670 "line": 221,
671 "column": 24 671 "column": 24
672 }, 672 },
673 "end": { 673 "end": {
674 "line": 225, 674 "line": 224,
675 "column": 3 675 "column": 3
676 } 676 }
677 }, 677 },
@@ -680,11 +680,11 @@
680 "defaultMessage": "!!!Activate next service...", 680 "defaultMessage": "!!!Activate next service...",
681 "file": "src/lib/Menu.js", 681 "file": "src/lib/Menu.js",
682 "start": { 682 "start": {
683 "line": 226, 683 "line": 225,
684 "column": 23 684 "column": 23
685 }, 685 },
686 "end": { 686 "end": {
687 "line": 229, 687 "line": 228,
688 "column": 3 688 "column": 3
689 } 689 }
690 }, 690 },
@@ -693,11 +693,11 @@
693 "defaultMessage": "!!!Activate previous service...", 693 "defaultMessage": "!!!Activate previous service...",
694 "file": "src/lib/Menu.js", 694 "file": "src/lib/Menu.js",
695 "start": { 695 "start": {
696 "line": 230, 696 "line": 229,
697 "column": 27 697 "column": 27
698 }, 698 },
699 "end": { 699 "end": {
700 "line": 233, 700 "line": 232,
701 "column": 3 701 "column": 3
702 } 702 }
703 }, 703 },
@@ -706,11 +706,11 @@
706 "defaultMessage": "!!!Disable notifications & audio", 706 "defaultMessage": "!!!Disable notifications & audio",
707 "file": "src/lib/Menu.js", 707 "file": "src/lib/Menu.js",
708 "start": { 708 "start": {
709 "line": 234, 709 "line": 233,
710 "column": 11 710 "column": 11
711 }, 711 },
712 "end": { 712 "end": {
713 "line": 237, 713 "line": 236,
714 "column": 3 714 "column": 3
715 } 715 }
716 }, 716 },
@@ -719,11 +719,11 @@
719 "defaultMessage": "!!!Enable notifications & audio", 719 "defaultMessage": "!!!Enable notifications & audio",
720 "file": "src/lib/Menu.js", 720 "file": "src/lib/Menu.js",
721 "start": { 721 "start": {
722 "line": 238, 722 "line": 237,
723 "column": 13 723 "column": 13
724 }, 724 },
725 "end": { 725 "end": {
726 "line": 241, 726 "line": 240,
727 "column": 3 727 "column": 3
728 } 728 }
729 }, 729 },
@@ -732,11 +732,11 @@
732 "defaultMessage": "!!!Workspaces", 732 "defaultMessage": "!!!Workspaces",
733 "file": "src/lib/Menu.js", 733 "file": "src/lib/Menu.js",
734 "start": { 734 "start": {
735 "line": 242, 735 "line": 241,
736 "column": 14 736 "column": 14
737 }, 737 },
738 "end": { 738 "end": {
739 "line": 245, 739 "line": 244,
740 "column": 3 740 "column": 3
741 } 741 }
742 }, 742 },
@@ -745,11 +745,11 @@
745 "defaultMessage": "!!!Default", 745 "defaultMessage": "!!!Default",
746 "file": "src/lib/Menu.js", 746 "file": "src/lib/Menu.js",
747 "start": { 747 "start": {
748 "line": 246, 748 "line": 245,
749 "column": 20 749 "column": 20
750 }, 750 },
751 "end": { 751 "end": {
752 "line": 249, 752 "line": 248,
753 "column": 3 753 "column": 3
754 } 754 }
755 }, 755 },
@@ -758,11 +758,11 @@
758 "defaultMessage": "!!!Todos", 758 "defaultMessage": "!!!Todos",
759 "file": "src/lib/Menu.js", 759 "file": "src/lib/Menu.js",
760 "start": { 760 "start": {
761 "line": 250, 761 "line": 249,
762 "column": 9 762 "column": 9
763 }, 763 },
764 "end": { 764 "end": {
765 "line": 253, 765 "line": 252,
766 "column": 3 766 "column": 3
767 } 767 }
768 }, 768 },
@@ -771,11 +771,11 @@
771 "defaultMessage": "!!!Open Todos drawer", 771 "defaultMessage": "!!!Open Todos drawer",
772 "file": "src/lib/Menu.js", 772 "file": "src/lib/Menu.js",
773 "start": { 773 "start": {
774 "line": 254, 774 "line": 253,
775 "column": 19 775 "column": 19
776 }, 776 },
777 "end": { 777 "end": {
778 "line": 257, 778 "line": 256,
779 "column": 3 779 "column": 3
780 } 780 }
781 }, 781 },
@@ -784,11 +784,24 @@
784 "defaultMessage": "!!!Close Todos drawer", 784 "defaultMessage": "!!!Close Todos drawer",
785 "file": "src/lib/Menu.js", 785 "file": "src/lib/Menu.js",
786 "start": { 786 "start": {
787 "line": 258, 787 "line": 257,
788 "column": 20 788 "column": 20
789 }, 789 },
790 "end": { 790 "end": {
791 "line": 260,
792 "column": 3
793 }
794 },
795 {
796 "id": "menu.todos.enableTodos",
797 "defaultMessage": "!!!Enable Todos",
798 "file": "src/lib/Menu.js",
799 "start": {
791 "line": 261, 800 "line": 261,
801 "column": 15
802 },
803 "end": {
804 "line": 264,
792 "column": 3 805 "column": 3
793 } 806 }
794 } 807 }
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 81efaf18f..4aa2edaba 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -8,7 +8,6 @@ import { workspaceActions } from '../features/workspaces/actions';
8import { gaEvent } from './analytics'; 8import { gaEvent } from './analytics';
9import { announcementActions } from '../features/announcements/actions'; 9import { announcementActions } from '../features/announcements/actions';
10import { announcementsStore } from '../features/announcements'; 10import { announcementsStore } from '../features/announcements';
11import TodoStore from '../features/todos/store';
12import { GA_CATEGORY_TODOS, todosStore } from '../features/todos'; 11import { GA_CATEGORY_TODOS, todosStore } from '../features/todos';
13import { todoActions } from '../features/todos/actions'; 12import { todoActions } from '../features/todos/actions';
14 13
@@ -259,6 +258,10 @@ const menuItems = defineMessages({
259 id: 'menu.Todoss.closeTodosDrawer', 258 id: 'menu.Todoss.closeTodosDrawer',
260 defaultMessage: '!!!Close Todos drawer', 259 defaultMessage: '!!!Close Todos drawer',
261 }, 260 },
261 enableTodos: {
262 id: 'menu.todos.enableTodos',
263 defaultMessage: '!!!Enable Todos',
264 },
262}); 265});
263 266
264function getActiveWebview() { 267function getActiveWebview() {
@@ -926,14 +929,12 @@ export default class FranzMenu {
926 } 929 }
927 930
928 todosMenu() { 931 todosMenu() {
929 const { isTodosPanelVisible } = TodoStore; 932 const { isTodosPanelVisible, isFeatureEnabledByUser } = this.stores.todos;
930 const { intl } = window.franz; 933 const { intl } = window.franz;
931 const menu = []; 934 const menu = [];
932 935
933 // Open todos drawer: 936 const drawerLabel = isTodosPanelVisible ? menuItems.closeTodosDrawer : menuItems.openTodosDrawer;
934 const drawerLabel = ( 937
935 isTodosPanelVisible ? menuItems.closeTodosDrawer : menuItems.openTodosDrawer
936 );
937 menu.push({ 938 menu.push({
938 label: intl.formatMessage(drawerLabel), 939 label: intl.formatMessage(drawerLabel),
939 accelerator: `${cmdKey}+T`, 940 accelerator: `${cmdKey}+T`,
@@ -941,11 +942,21 @@ export default class FranzMenu {
941 todoActions.toggleTodosPanel(); 942 todoActions.toggleTodosPanel();
942 gaEvent(GA_CATEGORY_TODOS, 'toggleDrawer', 'menu'); 943 gaEvent(GA_CATEGORY_TODOS, 'toggleDrawer', 'menu');
943 }, 944 },
944 enabled: this.stores.user.isLoggedIn, 945 enabled: this.stores.user.isLoggedIn && isFeatureEnabledByUser,
945 }, { 946 }, {
946 type: 'separator', 947 type: 'separator',
947 }); 948 });
948 949
950 if (!isFeatureEnabledByUser) {
951 menu.push({
952 label: intl.formatMessage(menuItems.enableTodos),
953 click: () => {
954 todoActions.toggleTodosFeatureVisibility();
955 gaEvent(GA_CATEGORY_TODOS, 'enable', 'menu');
956 },
957 });
958 }
959
949 return menu; 960 return menu;
950 } 961 }
951 962