From 4666e85de5c40e4cd7fa952a1d1c873a43dc60fb Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Tue, 30 Jul 2019 15:33:29 +0200 Subject: feat(App): Add option to copy debug information via the help menu --- src/lib/Menu.js | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'src/lib/Menu.js') diff --git a/src/lib/Menu.js b/src/lib/Menu.js index e0dfd736e..22d788918 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,4 +1,4 @@ -import { remote, shell } from 'electron'; +import { remote, shell, clipboard } from 'electron'; import { observable, autorun } from 'mobx'; import { defineMessages } from 'react-intl'; @@ -128,6 +128,18 @@ const menuItems = defineMessages({ id: 'menu.help.support', defaultMessage: '!!!Support', }, + debugInfo: { + id: 'menu.help.debugInfo', + defaultMessage: '!!!Copy Debug Information', + }, + debugInfoCopiedHeadline: { + id: 'menu.help.debugInfoCopiedHeadline', + defaultMessage: '!!!Franz Debug Information', + }, + debugInfoCopiedBody: { + id: 'menu.help.debugInfoCopiedBody', + defaultMessage: '!!!Your Debug Information has been copied to your clipboard.', + }, tos: { id: 'menu.help.tos', defaultMessage: '!!!Terms of Service', @@ -760,6 +772,10 @@ export default class FranzMenu { tpl[4].submenu = this.workspacesMenu(); } + tpl[tpl.length - 1].submenu.push({ + type: 'separator', + }, this.debugMenu()); + this.currentTemplate = tpl; const menu = Menu.buildFromTemplate(tpl); Menu.setApplicationMenu(menu); @@ -870,6 +886,28 @@ export default class FranzMenu { return menu; } + debugMenu() { + const { intl } = window.franz; + + return { + label: intl.formatMessage(menuItems.debugInfo), + click: () => { + const { debugInfo } = this.stores.app; + + clipboard.write({ + text: JSON.stringify(debugInfo), + }); + + this.actions.app.notify({ + title: intl.formatMessage(menuItems.debugInfoCopiedHeadline), + options: { + body: intl.formatMessage(menuItems.debugInfoCopiedBody), + }, + }); + }, + }; + } + _getServiceName(service) { if (service.name) { return service.name; -- cgit v1.2.3-70-g09d2