From 47b24d26fff139a1545794a4ca666cce396f8326 Mon Sep 17 00:00:00 2001 From: Max Litruv Boonzaayer Date: Sun, 25 Jan 2026 21:50:10 +1100 Subject: [PATCH] fix: update openExternalUrl to use invoke for Tauri command and add fallback for opener plugin --- src/app/utils/tauri.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/app/utils/tauri.ts b/src/app/utils/tauri.ts index c57ff74..b43e879 100644 --- a/src/app/utils/tauri.ts +++ b/src/app/utils/tauri.ts @@ -9,15 +9,23 @@ export const openExternalUrl = async (url: string): Promise => { // Only run this in Tauri builds if (typeof window !== 'undefined' && (window as any).__TAURI__) { try { - console.log('[openExternalUrl] importing opener plugin...'); - const { openUrl } = await import('@tauri-apps/plugin-opener'); - console.log('[openExternalUrl] calling openUrl...'); - await openUrl(url); - console.log('[openExternalUrl] openUrl succeeded'); + console.log('[openExternalUrl] invoking open_external_url command...'); + const { invoke } = await import('@tauri-apps/api/core'); + await invoke('open_external_url', { url }); + console.log('[openExternalUrl] command succeeded'); return; } catch (err) { - console.error('[openExternalUrl] Tauri opener.openUrl failed:', err); - // Don't fall back to window.open in Tauri - it won't work with localhost plugin + console.error('[openExternalUrl] Tauri command failed:', err); + // Try the plugin as fallback (for mobile) + try { + console.log('[openExternalUrl] trying opener plugin fallback...'); + const { openUrl } = await import('@tauri-apps/plugin-opener'); + await openUrl(url); + console.log('[openExternalUrl] plugin fallback succeeded'); + return; + } catch (pluginErr) { + console.error('[openExternalUrl] plugin fallback also failed:', pluginErr); + } return; } }