From 198add393135af6c021d2be33ca080e86a9366fa Mon Sep 17 00:00:00 2001 From: Arjun Patel Date: Tue, 9 Jun 2026 09:34:13 -0700 Subject: [PATCH] fix: add platform abstraction for deeplink This was crashing App.tsx due to the deep link listener calling methods on window which do not exist. --- js/desktop/src/App.tsx | 4 ++-- js/desktop/src/features/network-root.tsx | 5 +---- js/desktop/src/lib/platform/electron.ts | 5 +++++ js/desktop/src/lib/platform/types.ts | 5 +++++ js/desktop/src/lib/platform/web.ts | 7 +++++++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/js/desktop/src/App.tsx b/js/desktop/src/App.tsx index 5a8da62..9c1f16a 100644 --- a/js/desktop/src/App.tsx +++ b/js/desktop/src/App.tsx @@ -56,10 +56,10 @@ function DeepLinkNavigationListener() { const navigate = useNavigate(); useEffect(() => { - window.electronDeepLink.getPending().then((path) => { + platform.deepLink.getPending().then((path) => { if (path) navigate(path); }); - return window.electronDeepLink.onNavigate((path) => navigate(path)); + return platform.deepLink.onNavigate((path) => navigate(path)); }, [navigate]); return null; diff --git a/js/desktop/src/features/network-root.tsx b/js/desktop/src/features/network-root.tsx index 17d0f00..5b6556a 100644 --- a/js/desktop/src/features/network-root.tsx +++ b/js/desktop/src/features/network-root.tsx @@ -30,8 +30,7 @@ export default function NetworkRoot() { setSearchParams( (prev) => { const params = new URLSearchParams(prev); - if (next === 'open') params.delete('status'); - else params.set('status', next); + params.set('status', next); return params; }, { replace: true }, @@ -56,7 +55,6 @@ export default function NetworkRoot() { return (
- {/* Top bar — stays in place */}
- {/* Scrollable content */}
window.electronApp.setDockBadge(count), getVersion: () => window.electronApp.getVersion(), }, + + deepLink: { + getPending: () => window.electronDeepLink.getPending(), + onNavigate: (cb) => window.electronDeepLink.onNavigate(cb), + }, }; diff --git a/js/desktop/src/lib/platform/types.ts b/js/desktop/src/lib/platform/types.ts index d5874ba..4e21f13 100644 --- a/js/desktop/src/lib/platform/types.ts +++ b/js/desktop/src/lib/platform/types.ts @@ -60,6 +60,11 @@ export interface Platform { setDockBadge: (count: number) => void; getVersion: () => Promise; }; + + deepLink: { + getPending: () => Promise; + onNavigate: (callback: (path: string) => void) => () => void; + }; } export const DESKTOP_DOWNLOAD_URL = 'https://flowylabs.ai/llink/download'; diff --git a/js/desktop/src/lib/platform/web.ts b/js/desktop/src/lib/platform/web.ts index b02a978..11e46b5 100644 --- a/js/desktop/src/lib/platform/web.ts +++ b/js/desktop/src/lib/platform/web.ts @@ -117,4 +117,11 @@ export const webPlatform: Platform = { setDockBadge: applyDockBadge, getVersion: async () => __APP_VERSION__, }, + + deepLink: { + getPending: () => Promise.resolve(null), + onNavigate: (_) => { + return () => {}; + }, + }, };