From 4a87d86e76cdd92917c0ba16dfa74cc383bbeb92 Mon Sep 17 00:00:00 2001 From: kingbri Date: Sat, 18 Feb 2023 11:39:03 -0500 Subject: [PATCH] Ferrite: Add fixes for Introspect v0.2.2 Introspect now properly updates on every view lifecycle change, so add a check to a reference on the UIHostingController and see if it has been instantiated already. Also clean up view struct names to reflect what is a modifier. Signed-off-by: kingbri --- Ferrite.xcodeproj/project.pbxproj | 50 +++++++++---------- Ferrite/Extensions/View.swift | 18 +++---- .../Modifiers/ConditionalContextMenu.swift | 2 +- .../CommonViews/Modifiers/ConditionalId.swift | 2 +- ...hAppearance.swift => CustomScopeBar.swift} | 10 ++-- .../Modifiers/DisableInteraction.swift | 2 +- .../Modifiers/DisabledAppearance.swift | 2 +- .../CommonViews/Modifiers/InlinedList.swift | 2 +- ...pearModifier.swift => ViewDidAppear.swift} | 0 Ferrite/Views/ContentView.swift | 2 +- Ferrite/Views/LibraryView.swift | 2 +- Ferrite/Views/PluginsView.swift | 8 +-- 12 files changed, 52 insertions(+), 48 deletions(-) rename Ferrite/Views/CommonViews/Modifiers/{SearchAppearance.swift => CustomScopeBar.swift} (88%) rename Ferrite/Views/CommonViews/Modifiers/{ViewDidAppearModifier.swift => ViewDidAppear.swift} (100%) diff --git a/Ferrite.xcodeproj/project.pbxproj b/Ferrite.xcodeproj/project.pbxproj index fa6ae4f..d2f29cb 100644 --- a/Ferrite.xcodeproj/project.pbxproj +++ b/Ferrite.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ 0C42B5962932F2D5008057A0 /* DebridPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C42B5952932F2D5008057A0 /* DebridPickerView.swift */; }; 0C42B5982932F6DD008057A0 /* Set.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C42B5972932F6DD008057A0 /* Set.swift */; }; 0C445C62293F9A0B0060744D /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C445C61293F9A0B0060744D /* Bundle.swift */; }; + 0C448BE929A135F100F4E266 /* Introspect-Static in Frameworks */ = {isa = PBXBuildFile; productRef = 0C448BE829A135F100F4E266 /* Introspect-Static */; }; 0C44E2A828D4DDDC007711AE /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44E2A728D4DDDC007711AE /* Application.swift */; }; 0C44E2AD28D51C63007711AE /* BackupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44E2AC28D51C63007711AE /* BackupManager.swift */; }; 0C44E2AF28D52E8A007711AE /* BackupsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44E2AE28D52E8A007711AE /* BackupsView.swift */; }; @@ -48,7 +49,7 @@ 0C54D36328C5086E00BFEEE2 /* History+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C54D36128C5086E00BFEEE2 /* History+CoreDataClass.swift */; }; 0C54D36428C5086E00BFEEE2 /* History+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C54D36228C5086E00BFEEE2 /* History+CoreDataProperties.swift */; }; 0C572D4C2993FC2A003EEC05 /* ViewDidAppearHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C572D4B2993FC2A003EEC05 /* ViewDidAppearHandler.swift */; }; - 0C572D4E299403B7003EEC05 /* ViewDidAppearModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C572D4D299403B7003EEC05 /* ViewDidAppearModifier.swift */; }; + 0C572D4E299403B7003EEC05 /* ViewDidAppear.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C572D4D299403B7003EEC05 /* ViewDidAppear.swift */; }; 0C57D4CC289032ED008534E8 /* SearchResultInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C57D4CB289032ED008534E8 /* SearchResultInfoView.swift */; }; 0C5FCB05296744F300849E87 /* AllDebridCloudView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C5FCB04296744F300849E87 /* AllDebridCloudView.swift */; }; 0C64A4B4288903680079976D /* Base32 in Frameworks */ = {isa = PBXBuildFile; productRef = 0C64A4B3288903680079976D /* Base32 */; }; @@ -116,7 +117,6 @@ 0CB6516528C5A5D700DCA721 /* InlinedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB6516428C5A5D700DCA721 /* InlinedList.swift */; }; 0CB6516A28C5B4A600DCA721 /* InlineHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CB6516928C5B4A600DCA721 /* InlineHeader.swift */; }; 0CBAB83628D12ED500AC903E /* DisableInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBAB83528D12ED500AC903E /* DisableInteraction.swift */; }; - 0CBC07C8299F2E0300F78723 /* Introspect-Static in Frameworks */ = {isa = PBXBuildFile; productRef = 0CBC07C7299F2E0300F78723 /* Introspect-Static */; }; 0CBC76FD288D914F0054BE44 /* BatchChoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBC76FC288D914F0054BE44 /* BatchChoiceView.swift */; }; 0CBC76FF288DAAD00054BE44 /* NavigationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBC76FE288DAAD00054BE44 /* NavigationViewModel.swift */; }; 0CBC7705288DE7F40054BE44 /* PersistenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CBC7704288DE7F40054BE44 /* PersistenceController.swift */; }; @@ -124,7 +124,7 @@ 0CC389542970AD900066D06F /* Action+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CC389522970AD900066D06F /* Action+CoreDataProperties.swift */; }; 0CD4CAC628C980EB0046E1DC /* HistoryActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD4CAC528C980EB0046E1DC /* HistoryActionsView.swift */; }; 0CD5E78928CD932B001BF684 /* DisabledAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD5E78828CD932B001BF684 /* DisabledAppearance.swift */; }; - 0CD5F1FB299BEFBE00476DDB /* SearchAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD5F1FA299BEFBE00476DDB /* SearchAppearance.swift */; }; + 0CD5F1FB299BEFBE00476DDB /* CustomScopeBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD5F1FA299BEFBE00476DDB /* CustomScopeBar.swift */; }; 0CD5F1FD299C083B00476DDB /* PluginPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD5F1FC299C083B00476DDB /* PluginPickerView.swift */; }; 0CD72E17293D9928001A7EA4 /* Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD72E16293D9928001A7EA4 /* Array.swift */; }; 0CDCB91828C662640098B513 /* EmptyInstructionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CDCB91728C662640098B513 /* EmptyInstructionView.swift */; }; @@ -177,7 +177,7 @@ 0C54D36128C5086E00BFEEE2 /* History+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "History+CoreDataClass.swift"; sourceTree = ""; }; 0C54D36228C5086E00BFEEE2 /* History+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "History+CoreDataProperties.swift"; sourceTree = ""; }; 0C572D4B2993FC2A003EEC05 /* ViewDidAppearHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewDidAppearHandler.swift; sourceTree = ""; }; - 0C572D4D299403B7003EEC05 /* ViewDidAppearModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewDidAppearModifier.swift; sourceTree = ""; }; + 0C572D4D299403B7003EEC05 /* ViewDidAppear.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewDidAppear.swift; sourceTree = ""; }; 0C57D4CB289032ED008534E8 /* SearchResultInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultInfoView.swift; sourceTree = ""; }; 0C5FCB04296744F300849E87 /* AllDebridCloudView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllDebridCloudView.swift; sourceTree = ""; }; 0C68134F28BC1A2D00FAD890 /* GithubWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GithubWrapper.swift; sourceTree = ""; }; @@ -249,7 +249,7 @@ 0CC6E4D428A45BA000AF2BCC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 0CD4CAC528C980EB0046E1DC /* HistoryActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryActionsView.swift; sourceTree = ""; }; 0CD5E78828CD932B001BF684 /* DisabledAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledAppearance.swift; sourceTree = ""; }; - 0CD5F1FA299BEFBE00476DDB /* SearchAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAppearance.swift; sourceTree = ""; }; + 0CD5F1FA299BEFBE00476DDB /* CustomScopeBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomScopeBar.swift; sourceTree = ""; }; 0CD5F1FC299C083B00476DDB /* PluginPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PluginPickerView.swift; sourceTree = ""; }; 0CD72E16293D9928001A7EA4 /* Array.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Array.swift; sourceTree = ""; }; 0CDCB91728C662640098B513 /* EmptyInstructionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyInstructionView.swift; sourceTree = ""; }; @@ -265,7 +265,7 @@ buildActionMask = 2147483647; files = ( 0C7506D728B1AC9A008BEE38 /* SwiftyJSON in Frameworks */, - 0CBC07C8299F2E0300F78723 /* Introspect-Static in Frameworks */, + 0C448BE929A135F100F4E266 /* Introspect-Static in Frameworks */, 0C64A4B4288903680079976D /* Base32 in Frameworks */, 0C4CFC462897030D00AD9FAD /* Regex in Frameworks */, 0C7376F028A97D1400D60918 /* SwiftUIX in Frameworks */, @@ -393,8 +393,8 @@ 0CD5E78828CD932B001BF684 /* DisabledAppearance.swift */, 0CBAB83528D12ED500AC903E /* DisableInteraction.swift */, 0CB6516428C5A5D700DCA721 /* InlinedList.swift */, - 0CD5F1FA299BEFBE00476DDB /* SearchAppearance.swift */, - 0C572D4D299403B7003EEC05 /* ViewDidAppearModifier.swift */, + 0CD5F1FA299BEFBE00476DDB /* CustomScopeBar.swift */, + 0C572D4D299403B7003EEC05 /* ViewDidAppear.swift */, ); path = Modifiers; sourceTree = ""; @@ -629,7 +629,7 @@ 0C7376EF28A97D1400D60918 /* SwiftUIX */, 0C7506D628B1AC9A008BEE38 /* SwiftyJSON */, 0CDDDE042935235E006810B1 /* BetterSafariView */, - 0CBC07C7299F2E0300F78723 /* Introspect-Static */, + 0C448BE829A135F100F4E266 /* Introspect-Static */, ); productName = Torrenter; productReference = 0CAF1C68286F5C0E00296F86 /* Ferrite.app */; @@ -667,7 +667,7 @@ 0C7376EE28A97D1400D60918 /* XCRemoteSwiftPackageReference "SwiftUIX" */, 0C7506D528B1AC9A008BEE38 /* XCRemoteSwiftPackageReference "SwiftyJSON" */, 0CDDDE032935235E006810B1 /* XCRemoteSwiftPackageReference "BetterSafariView" */, - 0CBC07C6299F2E0200F78723 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, + 0C448BE729A135F100F4E266 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, ); productRefGroup = 0CAF1C69286F5C0E00296F86 /* Products */; projectDirPath = ""; @@ -757,7 +757,7 @@ 0C0D50E7288DFF850035ECC8 /* PluginListView.swift in Sources */, 0CA3B23428C2658700616D3A /* LibraryView.swift in Sources */, 0CD72E17293D9928001A7EA4 /* Array.swift in Sources */, - 0CD5F1FB299BEFBE00476DDB /* SearchAppearance.swift in Sources */, + 0CD5F1FB299BEFBE00476DDB /* CustomScopeBar.swift in Sources */, 0C44E2A828D4DDDC007711AE /* Application.swift in Sources */, 0CC389542970AD900066D06F /* Action+CoreDataProperties.swift in Sources */, 0C7ED14128D61BBA009E29AD /* BackupModels.swift in Sources */, @@ -816,7 +816,7 @@ 0C4CFC4D28970C8B00AD9FAD /* SourceComplexQuery+CoreDataClass.swift in Sources */, 0CA148E8288903F000DE2211 /* RealDebridWrapper.swift in Sources */, 0CA148D6288903F000DE2211 /* SettingsView.swift in Sources */, - 0C572D4E299403B7003EEC05 /* ViewDidAppearModifier.swift in Sources */, + 0C572D4E299403B7003EEC05 /* ViewDidAppear.swift in Sources */, 0CA148E5288903F000DE2211 /* DebridManager.swift in Sources */, 0C54D36328C5086E00BFEEE2 /* History+CoreDataClass.swift in Sources */, 0CBAB83628D12ED500AC903E /* DisableInteraction.swift in Sources */, @@ -1048,6 +1048,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 0C448BE729A135F100F4E266 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/siteline/SwiftUI-Introspect/"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.2.2; + }; + }; 0C4CFC442897030D00AD9FAD /* XCRemoteSwiftPackageReference "Regex" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/sindresorhus/Regex"; @@ -1096,14 +1104,6 @@ minimumVersion = 2.0.0; }; }; - 0CBC07C6299F2E0200F78723 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/siteline/SwiftUI-Introspect"; - requirement = { - kind = exactVersion; - version = 0.2.1; - }; - }; 0CDDDE032935235E006810B1 /* XCRemoteSwiftPackageReference "BetterSafariView" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/stleamist/BetterSafariView"; @@ -1115,6 +1115,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 0C448BE829A135F100F4E266 /* Introspect-Static */ = { + isa = XCSwiftPackageProductDependency; + package = 0C448BE729A135F100F4E266 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */; + productName = "Introspect-Static"; + }; 0C4CFC452897030D00AD9FAD /* Regex */ = { isa = XCSwiftPackageProductDependency; package = 0C4CFC442897030D00AD9FAD /* XCRemoteSwiftPackageReference "Regex" */; @@ -1145,11 +1150,6 @@ package = 0CAF1C79286F5C8600296F86 /* XCRemoteSwiftPackageReference "SwiftSoup" */; productName = SwiftSoup; }; - 0CBC07C7299F2E0300F78723 /* Introspect-Static */ = { - isa = XCSwiftPackageProductDependency; - package = 0CBC07C6299F2E0200F78723 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */; - productName = "Introspect-Static"; - }; 0CDDDE042935235E006810B1 /* BetterSafariView */ = { isa = XCSwiftPackageProductDependency; package = 0CDDDE032935235E006810B1 /* XCRemoteSwiftPackageReference "BetterSafariView" */; diff --git a/Ferrite/Extensions/View.swift b/Ferrite/Extensions/View.swift index f92064c..1a7f245 100644 --- a/Ferrite/Extensions/View.swift +++ b/Ferrite/Extensions/View.swift @@ -14,34 +14,34 @@ extension View { func conditionalContextMenu(id: some Hashable, @ViewBuilder _ internalContent: @escaping () -> some View) -> some View { - modifier(ConditionalContextMenu(internalContent, id: id)) + modifier(ConditionalContextMenuModifier(internalContent, id: id)) } func conditionalId(_ id: some Hashable) -> some View { - modifier(ConditionalId(id: id)) + modifier(ConditionalIdModifier(id: id)) } func disabledAppearance(_ disabled: Bool, dimmedOpacity: Double? = nil, animation: Animation? = nil) -> some View { - modifier(DisabledAppearance(disabled: disabled, dimmedOpacity: dimmedOpacity, animation: animation)) + modifier(DisabledAppearanceModifier(disabled: disabled, dimmedOpacity: dimmedOpacity, animation: animation)) } func disableInteraction(_ disabled: Bool) -> some View { - modifier(DisableInteraction(disabled: disabled)) + modifier(DisableInteractionModifier(disabled: disabled)) } func inlinedList(inset: CGFloat) -> some View { - modifier(InlinedList(inset: inset)) + modifier(InlinedListModifier(inset: inset)) } func viewDidAppear(_ callback: @escaping () -> Void) -> some View { modifier(ViewDidAppearModifier(callback: callback)) } - func searchAppearance(_ content: Content) -> some View { - modifier(SearchAppearance(hostingContent: content)) + func customScopeBar(_ content: Content) -> some View { + modifier(CustomScopeBarModifier(hostingContent: content)) } - func searchAppearance(_ content: @escaping () -> Content) -> some View { - modifier(SearchAppearance(hostingContent: content())) + func customScopeBar(_ content: @escaping () -> Content) -> some View { + modifier(CustomScopeBarModifier(hostingContent: content())) } } diff --git a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift b/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift index d981673..c18f3de 100644 --- a/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift +++ b/Ferrite/Views/CommonViews/Modifiers/ConditionalContextMenu.swift @@ -10,7 +10,7 @@ import SwiftUI -struct ConditionalContextMenu: ViewModifier { +struct ConditionalContextMenuModifier: ViewModifier { let internalContent: () -> InternalContent let id: ID diff --git a/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift b/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift index 146f87f..d9d89d6 100644 --- a/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift +++ b/Ferrite/Views/CommonViews/Modifiers/ConditionalId.swift @@ -10,7 +10,7 @@ import SwiftUI -struct ConditionalId: ViewModifier { +struct ConditionalIdModifier: ViewModifier { let id: ID func body(content: Content) -> some View { diff --git a/Ferrite/Views/CommonViews/Modifiers/SearchAppearance.swift b/Ferrite/Views/CommonViews/Modifiers/CustomScopeBar.swift similarity index 88% rename from Ferrite/Views/CommonViews/Modifiers/SearchAppearance.swift rename to Ferrite/Views/CommonViews/Modifiers/CustomScopeBar.swift index 22d232e..98626bf 100644 --- a/Ferrite/Views/CommonViews/Modifiers/SearchAppearance.swift +++ b/Ferrite/Views/CommonViews/Modifiers/CustomScopeBar.swift @@ -8,21 +8,22 @@ import SwiftUI import Introspect -struct SearchAppearance: ViewModifier { +struct CustomScopeBarModifier: ViewModifier { @AppStorage("Behavior.AutocorrectSearch") var autocorrectSearch = true let hostingContent: V - let hostingController: UIHostingController + @State private var hostingController: UIHostingController? init(hostingContent: V) { self.hostingContent = hostingContent - hostingController = UIHostingController(rootView: hostingContent) } func body(content: Content) -> some View { if #available(iOS 15, *) { content .backport.introspectSearchController { searchController in + guard hostingController == nil else { return } + searchController.hidesNavigationBarDuringPresentation = true searchController.searchBar.autocorrectionType = autocorrectSearch ? .default : .no searchController.searchBar.autocapitalizationType = autocorrectSearch ? .sentences : .none @@ -30,6 +31,7 @@ struct SearchAppearance: ViewModifier { searchController.searchBar.scopeButtonTitles = [""] (searchController.searchBar.value(forKey: "_scopeBar") as? UIView)?.isHidden = true + let hostingController = UIHostingController(rootView: hostingContent) hostingController.view.translatesAutoresizingMaskIntoConstraints = false hostingController.view.backgroundColor = .clear @@ -43,6 +45,8 @@ struct SearchAppearance: ViewModifier { hostingController.view.topAnchor.constraint(equalTo: containerView.topAnchor), hostingController.view.heightAnchor.constraint(equalTo: containerView.heightAnchor) ]) + + self.hostingController = hostingController } .introspectNavigationController { navigationController in navigationController.navigationBar.prefersLargeTitles = true diff --git a/Ferrite/Views/CommonViews/Modifiers/DisableInteraction.swift b/Ferrite/Views/CommonViews/Modifiers/DisableInteraction.swift index 97d428c..1dc3220 100644 --- a/Ferrite/Views/CommonViews/Modifiers/DisableInteraction.swift +++ b/Ferrite/Views/CommonViews/Modifiers/DisableInteraction.swift @@ -9,7 +9,7 @@ import SwiftUI -struct DisableInteraction: ViewModifier { +struct DisableInteractionModifier: ViewModifier { let disabled: Bool func body(content: Content) -> some View { diff --git a/Ferrite/Views/CommonViews/Modifiers/DisabledAppearance.swift b/Ferrite/Views/CommonViews/Modifiers/DisabledAppearance.swift index 1caeaf6..a0f8eb8 100644 --- a/Ferrite/Views/CommonViews/Modifiers/DisabledAppearance.swift +++ b/Ferrite/Views/CommonViews/Modifiers/DisabledAppearance.swift @@ -9,7 +9,7 @@ import SwiftUI -struct DisabledAppearance: ViewModifier { +struct DisabledAppearanceModifier: ViewModifier { let disabled: Bool let dimmedOpacity: Double? let animation: Animation? diff --git a/Ferrite/Views/CommonViews/Modifiers/InlinedList.swift b/Ferrite/Views/CommonViews/Modifiers/InlinedList.swift index 4c0b2dd..db8fb46 100644 --- a/Ferrite/Views/CommonViews/Modifiers/InlinedList.swift +++ b/Ferrite/Views/CommonViews/Modifiers/InlinedList.swift @@ -11,7 +11,7 @@ import Introspect import SwiftUI -struct InlinedList: ViewModifier { +struct InlinedListModifier: ViewModifier { let inset: CGFloat func body(content: Content) -> some View { diff --git a/Ferrite/Views/CommonViews/Modifiers/ViewDidAppearModifier.swift b/Ferrite/Views/CommonViews/Modifiers/ViewDidAppear.swift similarity index 100% rename from Ferrite/Views/CommonViews/Modifiers/ViewDidAppearModifier.swift rename to Ferrite/Views/CommonViews/Modifiers/ViewDidAppear.swift diff --git a/Ferrite/Views/ContentView.swift b/Ferrite/Views/ContentView.swift index 56ea9e6..aaa4787 100644 --- a/Ferrite/Views/ContentView.swift +++ b/Ferrite/Views/ContentView.swift @@ -59,7 +59,7 @@ struct ContentView: View { } } .navigationSearchBarHiddenWhenScrolling(false) - .searchAppearance { + .customScopeBar { SearchFilterHeaderView() .environmentObject(scrapingModel) .environmentObject(debridManager) diff --git a/Ferrite/Views/LibraryView.swift b/Ferrite/Views/LibraryView.swift index eaa027f..6629c4b 100644 --- a/Ferrite/Views/LibraryView.swift +++ b/Ferrite/Views/LibraryView.swift @@ -76,7 +76,7 @@ struct LibraryView: View { } } .navigationSearchBarHiddenWhenScrolling(false) - .searchAppearance { + .customScopeBar { LibraryPickerView() .environmentObject(debridManager) .environmentObject(navModel) diff --git a/Ferrite/Views/PluginsView.swift b/Ferrite/Views/PluginsView.swift index 7f3eb7f..07a71aa 100644 --- a/Ferrite/Views/PluginsView.swift +++ b/Ferrite/Views/PluginsView.swift @@ -66,10 +66,6 @@ struct PluginsView: View { } } .navigationSearchBarHiddenWhenScrolling(false) - .searchAppearance { - PluginPickerView() - .environmentObject(navModel) - } } .overlay { if checkedForPlugins { @@ -87,6 +83,10 @@ struct PluginsView: View { ProgressView() } } + .customScopeBar { + PluginPickerView() + .environmentObject(navModel) + } } }