From 36402a0eaa986db3a6080ec4827fd386c07ef2fa Mon Sep 17 00:00:00 2001 From: Jason Morley Date: Mon, 24 Jun 2024 11:15:32 -1000 Subject: [PATCH] feat: Open folders from the context menu (#36) --- Reconnect/Extensions/String.swift | 4 ++++ Reconnect/Views/BrowserView.swift | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Reconnect/Extensions/String.swift b/Reconnect/Extensions/String.swift index 0c44ad9..1b9b69f 100644 --- a/Reconnect/Extensions/String.swift +++ b/Reconnect/Extensions/String.swift @@ -20,6 +20,10 @@ import Foundation extension String { + var isDirectory: Bool { + return hasSuffix("\\") + } + var windowsLastPathComponent: String { return components(separatedBy: "\\").filter { !$0.isEmpty }.last ?? "" } diff --git a/Reconnect/Views/BrowserView.swift b/Reconnect/Views/BrowserView.swift index 59df06e..e34dcbb 100644 --- a/Reconnect/Views/BrowserView.swift +++ b/Reconnect/Views/BrowserView.swift @@ -71,13 +71,15 @@ struct BrowserView: View { } } .contextMenu(forSelectionType: FileServer.DirectoryEntry.ID.self) { items in - Button("Hello, World!") { - + Button("Open") { + model.navigate(to: items.first!) } + .disabled(items.count != 1 || !(items.first?.isDirectory ?? false)) } primaryAction: { items in guard items.count == 1, - let item = items.first + let item = items.first, + item.isDirectory else { return }