Procházet zdrojové kódy

fix(desktop): open external links in system browser instead of webview (#7360)

Turcu Laurentiu před 1 měsícem
rodič
revize
779610d668

+ 9 - 0
packages/desktop/src/index.tsx

@@ -292,6 +292,15 @@ root?.addEventListener("mousewheel", (e) => {
   e.stopPropagation()
 })
 
+// Handle external links - open in system browser instead of webview
+document.addEventListener("click", (e) => {
+  const link = (e.target as HTMLElement).closest("a.external-link") as HTMLAnchorElement | null
+  if (link?.href) {
+    e.preventDefault()
+    platform.openLink(link.href)
+  }
+})
+
 render(() => {
   const [serverPassword, setServerPassword] = createSignal<string | null>(null)
   const platform = createPlatform(() => serverPassword())

+ 1 - 1
packages/ui/src/context/marked.tsx

@@ -383,7 +383,7 @@ export const { use: useMarked, provider: MarkedProvider } = createSimpleContext(
         renderer: {
           link({ href, title, text }) {
             const titleAttr = title ? ` title="${title}"` : ""
-            return `<a href="${href}"${titleAttr} target="_blank" rel="noopener noreferrer">${text}</a>`
+            return `<a href="${href}"${titleAttr} class="external-link" target="_blank" rel="noopener noreferrer">${text}</a>`
           },
         },
       },