createWindow doesn't need to be async (we don't need to block on setting the right bg color)
We want the deeplink logic to match the behavior we use for grabbing the "last" window in the createWindow function: either the focused window, if one exists, or the first window we find if there are any open.
Main motivation is to prevent a redundant window from opening up when the app is opened via Deeplink (see Linear). e.g. if you open a replit://home link which launches the app you should see only one window with the home screen pop up not a home screen window and another window with your last Repl. Not sure if this fixes it but it's a good start to avoid race conditions between the onReady logic in main.ts and handling the first deeplink.
What changed
Make createWindow synchronous + grab 1st window on deeplink like we do when creating window.
Test plan
Deeplinks / creating windows should work as expected. The problem designed above is potentially fixed once packaged/released
Why
createWindow
doesn't need to be async (we don't need to block on setting the right bg color)createWindow
function: either the focused window, if one exists, or the first window we find if there are any open.Main motivation is to prevent a redundant window from opening up when the app is opened via Deeplink (see Linear). e.g. if you open a
replit://home
link which launches the app you should see only one window with the home screen pop up not a home screen window and another window with your last Repl. Not sure if this fixes it but it's a good start to avoid race conditions between the onReady logic in main.ts and handling the first deeplink.What changed
Make createWindow synchronous + grab 1st window on deeplink like we do when creating window.
Test plan
Deeplinks / creating windows should work as expected. The problem designed above is potentially fixed once packaged/released