From 79f6a60a162d1230c41df1bdcac7229fa6bde8e6 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Wed, 3 Apr 2024 14:50:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20Cleanup=20dependencies=20for=20s?= =?UTF-8?q?ite=20isolation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SwiftUI/Domains/VersionPopoverView.swift | 12 +++------ .../Domain List/UI/DomainListVC+Actions.swift | 26 ++++++++++++------- .../UI/DomainListVC+ContextMenu.swift | 4 +-- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/phpmon/Domain/SwiftUI/Domains/VersionPopoverView.swift b/phpmon/Domain/SwiftUI/Domains/VersionPopoverView.swift index 2ca408b..726a7c4 100644 --- a/phpmon/Domain/SwiftUI/Domains/VersionPopoverView.swift +++ b/phpmon/Domain/SwiftUI/Domains/VersionPopoverView.swift @@ -41,25 +41,21 @@ struct VersionPopoverView: View { color: Color("AppColor") ) if prefersIsolationSuggestions { + // SITE ISOLATION (preferred) LazyVGrid(columns: self.rows, alignment: .leading, spacing: 5, content: { ForEach(validPhpVersions, id: \.self) { version in Button("site_link.isolate_php".localized(version.short), action: { - Task { - // Applies isolation - App.shared.domainListWindowController?.contentVC.setUIBusy() - try? await site.isolate(version: version.short) - App.shared.domainListWindowController?.pressedReload(nil) - App.shared.domainListWindowController?.contentVC.setUINotBusy() - } + App.shared.domainListWindowController?.contentVC + .isolateSite(site: site, version: version.short) parent?.close() }).padding(EdgeInsets(top: 3, leading: 0, bottom: 3, trailing: 0)) } }).padding(EdgeInsets(top: 5, leading: 0, bottom: 0, trailing: 0)) } else { + // GLOBAL SWITCHER LazyVGrid(columns: self.rows, alignment: .leading, spacing: 5, content: { ForEach(validPhpVersions, id: \.self) { version in Button("site_link.switch_to_php".localized(version.short), action: { - // Uses the global switcher MainMenu.shared.switchToPhpVersion(version.short) parent?.close() }).padding(EdgeInsets(top: 3, leading: 0, bottom: 3, trailing: 0)) diff --git a/phpmon/Modules/Domain List/UI/DomainListVC+Actions.swift b/phpmon/Modules/Domain List/UI/DomainListVC+Actions.swift index ba2dfb2..29807c1 100644 --- a/phpmon/Modules/Domain List/UI/DomainListVC+Actions.swift +++ b/phpmon/Modules/Domain List/UI/DomainListVC+Actions.swift @@ -126,17 +126,17 @@ extension DomainListVC { } } - @objc func isolateSite(sender: PhpMenuItem) { - guard let site = selectedSite else { - return - } - + public func isolateSite(site: ValetSite, version: String) { waitAndExecute { do { // Instruct Valet to isolate a given PHP version - try await site.isolate(version: sender.version) - // Reload the UI - self.reloadSelectedRow() + try await site.isolate(version: version) + // Reload the UI if it's the same site + if self.selectedSite?.absolutePath == site.absolutePath { + self.reloadSelectedRow() + } else { + await self.reloadDomains() + } } catch { // Notify the user about a failed command let error = error as! ValetInteractionError @@ -145,7 +145,15 @@ extension DomainListVC { } } - @objc func removeIsolatedSite() { + @objc func isolateSiteViaMenuItem(sender: PhpMenuItem) { + guard let site = selectedSite else { + return + } + + self.isolateSite(site: site, version: sender.version) + } + + @objc func removeIsolatedSiteViaMenuItem() { guard let site = selectedSite else { return } diff --git a/phpmon/Modules/Domain List/UI/DomainListVC+ContextMenu.swift b/phpmon/Modules/Domain List/UI/DomainListVC+ContextMenu.swift index ba00710..cdd7677 100644 --- a/phpmon/Modules/Domain List/UI/DomainListVC+ContextMenu.swift +++ b/phpmon/Modules/Domain List/UI/DomainListVC+ContextMenu.swift @@ -121,7 +121,7 @@ extension DomainListVC { for version in PhpEnvironments.shared.availablePhpVersions.reversed() { let item = PhpMenuItem( title: "domain_list.always_use_php".localized(version), - action: #selector(self.isolateSite), + action: #selector(self.isolateSiteViaMenuItem), keyEquivalent: "" ) if site.servingPhpVersion == version && site.isolatedPhpVersion != nil { @@ -137,7 +137,7 @@ extension DomainListVC { items.append(NSMenuItem.separator()) items.append(NSMenuItem( title: "domain_list.remove_isolation".localized, - action: #selector(self.removeIsolatedSite) + action: #selector(self.removeIsolatedSiteViaMenuItem) )) }