From f3a1aec5f540aa64a2f52affbe1af50d9a43f7ae Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 26 Mar 2026 20:55:05 +1100 Subject: [PATCH 1/2] feat: add `.help()` for workspace name --- Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift b/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift index 3446429..8c9b192 100644 --- a/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift +++ b/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift @@ -95,6 +95,10 @@ struct MenuItemView: View { return formattedName } + private var fullItemName: String { + item.primaryHost(hostnameSuffix: state.hostnameSuffix) + } + private var isExpanded: Bool { expandedItem == item.id } @@ -134,6 +138,7 @@ struct MenuItemView: View { .onHover { hovering in nameIsSelected = hovering } + .help(fullItemName) }.buttonStyle(.plain).padding(.trailing, 3) MenuItemIcons(item: item, wsURL: wsURL) } From 55b446f3171c4815588f91f78f6b49e6ee0e22b7 Mon Sep 17 00:00:00 2001 From: Jake Date: Wed, 1 Apr 2026 16:34:47 +1100 Subject: [PATCH 2/2] fix: prefer use of `fullItemName` helper --- .../Coder-Desktop/Views/VPN/VPNMenuItem.swift | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift b/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift index 8c9b192..71e753d 100644 --- a/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift +++ b/Coder-Desktop/Coder-Desktop/Views/VPN/VPNMenuItem.swift @@ -83,10 +83,12 @@ struct MenuItemView: View { var hasApps: Bool { !apps.isEmpty } - private var itemName: AttributedString { - let name = item.primaryHost(hostnameSuffix: state.hostnameSuffix) + private var plainItemName: String { + item.primaryHost(hostnameSuffix: state.hostnameSuffix) + } - var formattedName = AttributedString(name) + private var itemName: AttributedString { + var formattedName = AttributedString(plainItemName) formattedName.foregroundColor = .primary if let range = formattedName.range(of: ".\(state.hostnameSuffix)", options: .backwards) { @@ -95,10 +97,6 @@ struct MenuItemView: View { return formattedName } - private var fullItemName: String { - item.primaryHost(hostnameSuffix: state.hostnameSuffix) - } - private var isExpanded: Bool { expandedItem == item.id } @@ -138,7 +136,7 @@ struct MenuItemView: View { .onHover { hovering in nameIsSelected = hovering } - .help(fullItemName) + .help(plainItemName) }.buttonStyle(.plain).padding(.trailing, 3) MenuItemIcons(item: item, wsURL: wsURL) } @@ -228,9 +226,12 @@ struct MenuItemIcons: View { @State private var webIsSelected: Bool = false func copyToClipboard() { - let primaryHost = item.primaryHost(hostnameSuffix: state.hostnameSuffix) NSPasteboard.general.clearContents() - NSPasteboard.general.setString(primaryHost, forType: .string) + NSPasteboard.general.setString(plainItemName, forType: .string) + } + + private var plainItemName: String { + item.primaryHost(hostnameSuffix: state.hostnameSuffix) } var body: some View {