From f4184cf1b9cbe2499d791fa40202d184b3c8a67b Mon Sep 17 00:00:00 2001 From: kingbri Date: Fri, 4 Oct 2024 14:59:35 -0400 Subject: [PATCH] Search: Remove ConditionalContextMenu Was required for iOS 15 to properly update its state. This is no longer a requirement. Signed-off-by: kingbri --- Ferrite.xcodeproj/project.pbxproj | 4 --- Ferrite/Extensions/View.swift | 6 ---- .../Modifiers/ConditionalContextMenu.swift | 28 ------------------- .../SearchResult/SearchResultButtonView.swift | 2 +- 4 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift diff --git a/Ferrite.xcodeproj/project.pbxproj b/Ferrite.xcodeproj/project.pbxproj index 82a5dff..517941a 100644 --- a/Ferrite.xcodeproj/project.pbxproj +++ b/Ferrite.xcodeproj/project.pbxproj @@ -68,7 +68,6 @@ 0C6C7C9D29315292002DF910 /* AllDebridModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C6C7C9C29315292002DF910 /* AllDebridModels.swift */; }; 0C7075E429D374C50093DB2D /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C7075E329D374C50093DB2D /* Color.swift */; }; 0C7075E629D3845D0093DB2D /* ShareSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C7075E529D3845D0093DB2D /* ShareSheet.swift */; }; - 0C70E40228C3CE9C00A5C72D /* ConditionalContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C70E40128C3CE9C00A5C72D /* ConditionalContextMenu.swift */; }; 0C70E40628C40C4E00A5C72D /* NotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C70E40528C40C4E00A5C72D /* NotificationCenter.swift */; }; 0C733287289C4C820058D1FE /* SourceSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C733286289C4C820058D1FE /* SourceSettingsView.swift */; }; 0C748EDA29D9256D0049B8BE /* Yams in Frameworks */ = {isa = PBXBuildFile; productRef = 0C748ED929D9256D0049B8BE /* Yams */; }; @@ -224,7 +223,6 @@ 0C6C7C9C29315292002DF910 /* AllDebridModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllDebridModels.swift; sourceTree = ""; }; 0C7075E329D374C50093DB2D /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; 0C7075E529D3845D0093DB2D /* ShareSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSheet.swift; sourceTree = ""; }; - 0C70E40128C3CE9C00A5C72D /* ConditionalContextMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalContextMenu.swift; sourceTree = ""; }; 0C70E40528C40C4E00A5C72D /* NotificationCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenter.swift; sourceTree = ""; }; 0C733286289C4C820058D1FE /* SourceSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceSettingsView.swift; sourceTree = ""; }; 0C750742289B003E004B3906 /* SourceRssParser+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SourceRssParser+CoreDataClass.swift"; sourceTree = ""; }; @@ -479,7 +477,6 @@ 0C44E2A928D4DFC4007711AE /* Modifiers */ = { isa = PBXGroup; children = ( - 0C70E40128C3CE9C00A5C72D /* ConditionalContextMenu.swift */, 0CD5E78828CD932B001BF684 /* DisabledAppearance.swift */, 0CBAB83528D12ED500AC903E /* DisableInteraction.swift */, 0CB6516428C5A5D700DCA721 /* InlinedList.swift */, @@ -877,7 +874,6 @@ 0C7D11FE28AA03FE00ED92DB /* View.swift in Sources */, 0CD0265729FEFBF900A83D25 /* FerriteKeychain.swift in Sources */, 0CA3B23728C2660700616D3A /* HistoryView.swift in Sources */, - 0C70E40228C3CE9C00A5C72D /* ConditionalContextMenu.swift in Sources */, 0C50B7D0299DF63C00A9FA3C /* UIDevice.swift in Sources */, 0C0D50E7288DFF850035ECC8 /* PluginAggregateView.swift in Sources */, 0CA3B23428C2658700616D3A /* LibraryView.swift in Sources */, diff --git a/Ferrite/Extensions/View.swift b/Ferrite/Extensions/View.swift index e3a6c03..7ed8740 100644 --- a/Ferrite/Extensions/View.swift +++ b/Ferrite/Extensions/View.swift @@ -19,12 +19,6 @@ extension View { // MARK: Modifiers - func conditionalContextMenu(id: some Hashable, - @ViewBuilder _ internalContent: @escaping () -> some View) -> some View - { - modifier(ConditionalContextMenuModifier(internalContent, id: id)) - } - func disabledAppearance(_ disabled: Bool, dimmedOpacity: Double? = nil, animation: Animation? = nil) -> some View { modifier(DisabledAppearanceModifier(disabled: disabled, dimmedOpacity: dimmedOpacity, animation: animation)) } diff --git a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift b/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift deleted file mode 100644 index 8255094..0000000 --- a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// ConditionalContextMenu.swift -// Ferrite -// -// Created by Brian Dashore on 9/3/22. -// -// Used as a workaround for iOS 15 not updating context views with conditional variables -// A stateful ID is required for the contextMenu to update itself. -// - -import SwiftUI - -struct ConditionalContextMenuModifier: ViewModifier { - let internalContent: () -> InternalContent - let id: ID - - init(@ViewBuilder _ internalContent: @escaping () -> InternalContent, id: ID) { - self.internalContent = internalContent - self.id = id - } - - func body(content: Content) -> some View { - content - .contextMenu { - internalContent() - } - } -} diff --git a/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift b/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift index f7a576d..2b061cc 100644 --- a/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift +++ b/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift @@ -68,7 +68,7 @@ struct SearchResultButtonView: View { } .disableInteraction(navModel.currentChoiceSheet != nil) .tint(.primary) - .conditionalContextMenu(id: existingBookmark) { + .contextMenu { ZStack { if let bookmark = existingBookmark { Button {