chore: move window.open to platform io to handle desktop app

This commit is contained in:
Andrew Bastin
2023-12-19 11:26:37 +05:30
parent f28298afe7
commit 5ad8f6c2ce
6 changed files with 21 additions and 3 deletions

View File

@@ -199,7 +199,7 @@ const GqlCollectionsGistExporter: ImporterOrExporter = {
exporter: "gist",
})
window.open(res.right, "_blank")
platform.io.openExternalLink(res.right)
}
},
}

View File

@@ -297,7 +297,7 @@ const HoppEnvironmentsGistExporter: ImporterOrExporter = {
platform: "rest",
})
window.open(res.right, "_blank")
platform.io.openExternalLink(res.right)
}
},
}

View File

@@ -81,4 +81,11 @@ export type IOPlatformDef = {
saveFileWithDialog: (
opts: SaveFileWithDialogOptions
) => Promise<SaveFileResponse>
/**
* Opens a link in the user's browser.
* The expected behaviour is for the browser to open a new tab/window (for example in desktop app) with the given URL.
* @param url The URL to open
*/
openExternalLink: (url: string) => Promise<void>
}

View File

@@ -34,4 +34,10 @@ export const browserIODef: IOPlatformDef = {
// Browsers provide no way for us to know the save went successfully.
return Promise.resolve({ type: "unknown" })
},
openExternalLink(url) {
window.open(url, "_blank")
// Browsers provide no way for us to know the open went successfully.
return Promise.resolve()
},
}

View File

@@ -14,6 +14,7 @@ import IconGitHub from "~icons/lucide/github"
import IconBook from "~icons/lucide/book"
import IconLifeBuoy from "~icons/lucide/life-buoy"
import IconZap from "~icons/lucide/zap"
import { platform } from "~/platform"
type Doc = {
text: string | string[]
@@ -113,7 +114,7 @@ export class GeneralSpotlightSearcherService extends StaticSpotlightSearcherServ
}
private openURL(url: string) {
window.open(url, "_blank")
platform.io.openExternalLink(url)
}
public onDocSelected(id: string): void {