From f9c053e81786ea0787fbd6bea1a43e37a5ffc18a Mon Sep 17 00:00:00 2001 From: Phorcys <57866459+phorcys420@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:40:47 +0100 Subject: [PATCH 1/2] fix(site/src/modules/apps): distinguish JB Toolbox from Gateway --- site/src/modules/apps/useAppLink.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/site/src/modules/apps/useAppLink.ts b/site/src/modules/apps/useAppLink.ts index bc51863b5af23..053a8f7d12968 100644 --- a/site/src/modules/apps/useAppLink.ts +++ b/site/src/modules/apps/useAppLink.ts @@ -58,15 +58,17 @@ export const useAppLink = ( const openAppExternallyFailedTimeout = 500; const openAppExternallyFailed = setTimeout(() => { // Check if this is a JetBrains IDE app - const isJetBrainsApp = - app.url && - (app.url.startsWith("jetbrains-gateway:") || - app.url.startsWith("jetbrains:")); + const isJetBrainsGateway = app.url?.startsWith("jetbrains-gateway:"); // starts with "jetbrains-gateway://connect#type=coder" (from https://registry.coder.com/modules/coder/jetbrains-gateway) + const isJetBrainsToolbox = app.url?.startsWith("jetbrains:"); // starts with "jetbrains://gateway/coder" (from https://registry.coder.com/modules/coder/jetbrains) // Check if this is a coder:// URL const isCoderApp = app.url?.startsWith("coder:"); - if (isJetBrainsApp) { + if (isJetBrainsGateway) { + displayError( + `To use ${label}, you need to have JetBrains Gateway installed.`, + ); + } else if (isJetBrainsToolbox) { displayError( `To use ${label}, you need to have JetBrains Toolbox installed.`, ); From 614d6fe6203c5f0e707d4ba08fd97f5cc9c05cdb Mon Sep 17 00:00:00 2001 From: Phorcys <57866459+phorcys420@users.noreply.github.com> Date: Thu, 20 Nov 2025 10:46:09 +0100 Subject: [PATCH 2/2] chore: update formatting Co-authored-by: Jake Howell --- site/src/modules/apps/useAppLink.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/site/src/modules/apps/useAppLink.ts b/site/src/modules/apps/useAppLink.ts index 053a8f7d12968..00b1c78940e04 100644 --- a/site/src/modules/apps/useAppLink.ts +++ b/site/src/modules/apps/useAppLink.ts @@ -58,8 +58,10 @@ export const useAppLink = ( const openAppExternallyFailedTimeout = 500; const openAppExternallyFailed = setTimeout(() => { // Check if this is a JetBrains IDE app - const isJetBrainsGateway = app.url?.startsWith("jetbrains-gateway:"); // starts with "jetbrains-gateway://connect#type=coder" (from https://registry.coder.com/modules/coder/jetbrains-gateway) - const isJetBrainsToolbox = app.url?.startsWith("jetbrains:"); // starts with "jetbrains://gateway/coder" (from https://registry.coder.com/modules/coder/jetbrains) + // starts with "jetbrains-gateway://connect#type=coder" (from https://registry.coder.com/modules/coder/jetbrains-gateway) + const isJetBrainsGateway = app.url?.startsWith("jetbrains-gateway:"); + // starts with "jetbrains://gateway/coder" (from https://registry.coder.com/modules/coder/jetbrains) + const isJetBrainsToolbox = app.url?.startsWith("jetbrains:"); // Check if this is a coder:// URL const isCoderApp = app.url?.startsWith("coder:");