From fa75ab567d1f7b58877beb72687d2cabb595f284 Mon Sep 17 00:00:00 2001 From: Sergio Padrino Date: Tue, 15 Feb 2022 12:22:32 +0100 Subject: [PATCH] Await moveToApplicationsFolder invocation on main process --- app/src/lib/ipc-shared.ts | 2 +- app/src/main-process/main.ts | 2 +- app/src/ui/dispatcher/dispatcher.ts | 3 ++- app/src/ui/main-process-proxy.ts | 2 +- app/src/ui/move-to-applications-folder.tsx | 4 ++-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/lib/ipc-shared.ts b/app/src/lib/ipc-shared.ts index 00b6e826e1..4350cefc22 100644 --- a/app/src/lib/ipc-shared.ts +++ b/app/src/lib/ipc-shared.ts @@ -72,7 +72,6 @@ export type RequestChannels = { 'auto-updater-update-downloaded': () => void 'native-theme-updated': () => void 'set-native-theme-source': (themeName: ThemeSource) => void - 'move-to-applications-folder': () => void 'focus-window': () => void } @@ -97,6 +96,7 @@ export type RequestResponseChannels = { 'is-window-focused': () => Promise 'open-external': (path: string) => Promise 'is-in-application-folder': () => Promise + 'move-to-applications-folder': () => Promise 'check-for-updates': (url: string) => Promise 'get-current-window-state': () => Promise 'get-current-window-zoom-factor': () => Promise diff --git a/app/src/main-process/main.ts b/app/src/main-process/main.ts index b2d3994cdc..6dda0df148 100644 --- a/app/src/main-process/main.ts +++ b/app/src/main-process/main.ts @@ -576,7 +576,7 @@ app.on('ready', () => { * An event sent by the renderer asking to move the app to the application * folder */ - ipcMain.on('move-to-applications-folder', () => { + ipcMain.handle('move-to-applications-folder', async () => { app.moveToApplicationsFolder?.() }) diff --git a/app/src/ui/dispatcher/dispatcher.ts b/app/src/ui/dispatcher/dispatcher.ts index 47c8a8a75f..96cf43eff3 100644 --- a/app/src/ui/dispatcher/dispatcher.ts +++ b/app/src/ui/dispatcher/dispatcher.ts @@ -1375,8 +1375,9 @@ export class Dispatcher { return this.appStore.setStatsOptOut(optOut, userViewedPrompt) } + /** Moves the app to the /Applications folder on macOS. */ public moveToApplicationsFolder() { - moveToApplicationsFolder() + return moveToApplicationsFolder() } /** diff --git a/app/src/ui/main-process-proxy.ts b/app/src/ui/main-process-proxy.ts index 493d52fed6..fcdf101c3b 100644 --- a/app/src/ui/main-process-proxy.ts +++ b/app/src/ui/main-process-proxy.ts @@ -217,7 +217,7 @@ export function sendWillQuitSync() { /** * Tell the main process to move the application to the application folder */ -export const moveToApplicationsFolder = sendProxy( +export const moveToApplicationsFolder = invokeProxy( 'move-to-applications-folder', 0 ) diff --git a/app/src/ui/move-to-applications-folder.tsx b/app/src/ui/move-to-applications-folder.tsx index 5cb6d5366e..40f0241402 100644 --- a/app/src/ui/move-to-applications-folder.tsx +++ b/app/src/ui/move-to-applications-folder.tsx @@ -97,11 +97,11 @@ export class MoveToApplicationsFolder extends React.Component< ) } - private onSubmit = () => { + private onSubmit = async () => { this.props.onDismissed() try { - this.props.dispatcher.moveToApplicationsFolder() + await this.props.dispatcher.moveToApplicationsFolder() } catch (error) { this.props.dispatcher.postError(error) }