From 4fc3244049028a668728d696bd5c4e631b446d65 Mon Sep 17 00:00:00 2001 From: Priya Patel Date: Mon, 17 Nov 2025 17:59:23 -0500 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20update=20logic=20to?= =?UTF-8?q?=20get=20preferred=20rdp=20client=20(#3066)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 💡 updated logic to store preferred rdp client * refactor: 💡 simplified preferred client logic --- .../src/services/rdp-client-manager.js | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/ui/desktop/electron-app/src/services/rdp-client-manager.js b/ui/desktop/electron-app/src/services/rdp-client-manager.js index 94f256711..6ba4d047a 100644 --- a/ui/desktop/electron-app/src/services/rdp-client-manager.js +++ b/ui/desktop/electron-app/src/services/rdp-client-manager.js @@ -77,31 +77,24 @@ class RdpClientManager { return available; } - /** - * Gets the best default RDP client (first available that's not 'none') - * @returns {Promise} Best RDP client value or 'none' - */ - async getBestDefaultRdpClient() { - const availableClients = await this.getAvailableRdpClients(); - const bestClient = availableClients.find( - (client) => client !== RDP_CLIENT_NONE, - ); - return bestClient ?? RDP_CLIENT_NONE; - } - /** * Gets the user's preferred RDP client, auto-detecting if not set * @returns {Promise} Preferred RDP client value */ async getPreferredRdpClient() { - let preferredClient = store.get('preferredRdpClient'); + const availableClients = await this.getAvailableRdpClients(); + const installedClients = availableClients.filter( + (client) => client !== RDP_CLIENT_NONE, + ); - if (!preferredClient) { - // Auto-detect and set the best available client - preferredClient = await this.getBestDefaultRdpClient(); - store.set('preferredRdpClient', preferredClient); - } - return preferredClient; + if (installedClients.length === 0) return RDP_CLIENT_NONE; + + const preferredClient = + store.get('preferredRdpClient') ?? installedClients[0]; + // check if preferred client is still installed + return installedClients.includes(preferredClient) + ? preferredClient + : RDP_CLIENT_NONE; } /**