From 4cafa9ab1ad63489d581fab6fc8885a015e0a0e1 Mon Sep 17 00:00:00 2001 From: Anton Nikolaev Date: Mon, 14 Jun 2021 06:50:08 -0700 Subject: [PATCH] Fix bug with multiple handling of deep link after window reload Summary: This diff fixed the issue when deep link handled multiple times in case Flipper window reloaded. See test plan for videos. Reviewed By: fabiomassimo Differential Revision: D29100221 fbshipit-source-id: 0ff6f1a645d5488d205b4fba44942f4d39f59088 --- desktop/static/main.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/desktop/static/main.ts b/desktop/static/main.ts index 6a77ef774..d52dc9ae8 100644 --- a/desktop/static/main.ts +++ b/desktop/static/main.ts @@ -113,6 +113,7 @@ let win: BrowserWindow; let appReady = false; let deeplinkURL: string | undefined = argv.url; let filePath: string | undefined = argv.file; +let didMount = false; // tracking setInterval(() => { @@ -151,10 +152,11 @@ app.on('will-finish-launching', () => { // Protocol handler for osx app.on('open-url', function (event, url) { event.preventDefault(); - deeplinkURL = url; argv.url = url; - if (win) { - win.webContents.send('flipper-protocol-handler', deeplinkURL); + if (win && didMount) { + win.webContents.send('flipper-protocol-handler', url); + } else { + deeplinkURL = url; } }); app.on('open-file', (event, path) => { @@ -245,6 +247,7 @@ app.on('will-quit', () => { }); ipcMain.on('componentDidMount', (_event) => { + didMount = true; if (deeplinkURL) { win.webContents.send('flipper-protocol-handler', deeplinkURL); deeplinkURL = undefined;