From 919732131035be499b8a22158d76f4877fce0b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Linhart?= Date: Mon, 9 Mar 2020 09:09:50 +0100 Subject: [PATCH] Add remember option checkbox in private mode dialog (#1289) Co-authored-by: Sindre Sorhus --- source/config.ts | 5 +++++ source/menu.ts | 25 +++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/source/config.ts b/source/config.ts index d22640afd..da6a87fd5 100644 --- a/source/config.ts +++ b/source/config.ts @@ -5,6 +5,7 @@ type StoreType = { followSystemAppearance: boolean; darkMode: boolean; privateMode: boolean; + showPrivateModePrompt: boolean; vibrancy: 'none' | 'sidebar' | 'full'; zoomFactor: number; lastWindowState: { @@ -53,6 +54,10 @@ const schema: {[Key in keyof StoreType]: Store.Schema} = { type: 'boolean', default: false }, + showPrivateModePrompt: { + type: 'boolean', + default: true + }, vibrancy: { type: 'string', enum: ['none', 'sidebar', 'full'], diff --git a/source/menu.ts b/source/menu.ts index 9e1a9bc34..ee0ca8618 100644 --- a/source/menu.ts +++ b/source/menu.ts @@ -432,9 +432,9 @@ Press Command/Ctrl+R in Caprine to see your changes. type: 'checkbox', checked: config.get('privateMode'), accelerator: 'CommandOrControl+Shift+N', - click(menuItem, _browserWindow, event) { - if (!config.get('privateMode') && event.shiftKey) { - const confirmPrivateMode = dialog.showMessageBoxSync({ + async click(menuItem, _browserWindow, event) { + if (!config.get('privateMode') && config.get('showPrivateModePrompt') && event.shiftKey) { + const result = await dialog.showMessageBox(_browserWindow, { message: 'Are you sure you want to hide names and avatars?', detail: 'This was triggered by Command/Control+Shift+N.', buttons: [ @@ -442,17 +442,22 @@ Press Command/Ctrl+R in Caprine to see your changes. 'Don\'t Hide' ], defaultId: 0, - cancelId: 1 - }) === 0; + cancelId: 1, + checkboxLabel: 'Don\'t ask me again' + }); + + config.set('showPrivateModePrompt', !result.checkboxChecked); - if (!confirmPrivateMode) { + if (result.response === 0) { + config.set('privateMode', !config.get('privateMode')); + sendAction('set-private-mode'); + } else if (result.response === 1) { menuItem.checked = false; - return; } + } else { + config.set('privateMode', !config.get('privateMode')); + sendAction('set-private-mode'); } - - config.set('privateMode', !config.get('privateMode')); - sendAction('set-private-mode'); } }, {