summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/index.tsx23
1 files changed, 9 insertions, 14 deletions
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index b0ac83307..fe9e3f92e 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -328,23 +328,18 @@ render(() => {
const [serverPassword, setServerPassword] = createSignal<string | null>(null)
const platform = createPlatform(() => serverPassword())
- onMount(() => {
- // Handle external links - open in system browser instead of webview
- const handleClick = (e: MouseEvent) => {
- const target = e.target as HTMLElement
- const link = target.closest("a") as HTMLAnchorElement | null
-
- if (link?.href && !link.href.startsWith("javascript:") && !link.href.startsWith("#")) {
- e.preventDefault()
- e.stopPropagation()
- e.stopImmediatePropagation()
- void shellOpen(link.href).catch(() => undefined)
- }
+ function handleClick(e: MouseEvent) {
+ const link = (e.target as HTMLElement).closest("a.external-link") as HTMLAnchorElement | null
+ if (link?.href) {
+ e.preventDefault()
+ platform.openLink(link.href)
}
+ }
- document.addEventListener("click", handleClick, true)
+ onMount(() => {
+ document.addEventListener("click", handleClick)
onCleanup(() => {
- document.removeEventListener("click", handleClick, true)
+ document.removeEventListener("click", handleClick)
})
})