From 7bb4ed5f7c5975265577623afdfa6588489591be Mon Sep 17 00:00:00 2001 From: kingbri Date: Fri, 4 Oct 2024 14:45:48 -0400 Subject: [PATCH] Tree: Switch to NavigationStack Since minVersion is iOS 16, remove the compatability view. Signed-off-by: kingbri --- Ferrite.xcodeproj/project.pbxproj | 4 ---- Ferrite/Views/CommonViews/NavView.swift | 21 ------------------- .../Plugin/PluginInfoView.swift | 2 +- .../Settings/Kodi/KodiEditorView.swift | 2 +- .../PluginList/PluginListEditorView.swift | 2 +- Ferrite/Views/ContentView.swift | 2 +- Ferrite/Views/LibraryView.swift | 2 +- Ferrite/Views/LoginWebView.swift | 2 +- Ferrite/Views/PluginsView.swift | 2 +- Ferrite/Views/SettingsView.swift | 2 +- .../Views/SheetViews/ActionChoiceView.swift | 2 +- .../Views/SheetViews/BatchChoiceView.swift | 3 +-- 12 files changed, 10 insertions(+), 36 deletions(-) delete mode 100644 Ferrite/Views/CommonViews/NavView.swift diff --git a/Ferrite.xcodeproj/project.pbxproj b/Ferrite.xcodeproj/project.pbxproj index a216429..42f5162 100644 --- a/Ferrite.xcodeproj/project.pbxproj +++ b/Ferrite.xcodeproj/project.pbxproj @@ -112,7 +112,6 @@ 0CA148D6288903F000DE2211 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148BB288903F000DE2211 /* SettingsView.swift */; }; 0CA148D7288903F000DE2211 /* LoginWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148BC288903F000DE2211 /* LoginWebView.swift */; }; 0CA148D8288903F000DE2211 /* ActionChoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148BD288903F000DE2211 /* ActionChoiceView.swift */; }; - 0CA148DB288903F000DE2211 /* NavView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148C1288903F000DE2211 /* NavView.swift */; }; 0CA148DC288903F000DE2211 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0CA148C2288903F000DE2211 /* Assets.xcassets */; }; 0CA148DD288903F000DE2211 /* ScrapingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CA148C3288903F000DE2211 /* ScrapingViewModel.swift */; }; 0CA148DF288903F000DE2211 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0CA148C6288903F000DE2211 /* Preview Assets.xcassets */; }; @@ -267,7 +266,6 @@ 0CA148BB288903F000DE2211 /* SettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; 0CA148BC288903F000DE2211 /* LoginWebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginWebView.swift; sourceTree = ""; }; 0CA148BD288903F000DE2211 /* ActionChoiceView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionChoiceView.swift; sourceTree = ""; }; - 0CA148C1288903F000DE2211 /* NavView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavView.swift; sourceTree = ""; }; 0CA148C2288903F000DE2211 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 0CA148C3288903F000DE2211 /* ScrapingViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScrapingViewModel.swift; sourceTree = ""; }; 0CA148C6288903F000DE2211 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; @@ -584,7 +582,6 @@ children = ( 0C44E2A928D4DFC4007711AE /* Modifiers */, 0CDCB91728C662640098B513 /* EmptyInstructionView.swift */, - 0CA148C1288903F000DE2211 /* NavView.swift */, 0CA3FB1F28B91D9500FA10A8 /* IndeterminateProgressView.swift */, 0CB6516928C5B4A600DCA721 /* InlineHeader.swift */, 0C32FB562890D1F2002BD219 /* ListRowViews.swift */, @@ -857,7 +854,6 @@ 0C2D9653299316CC00A504B6 /* Tag.swift in Sources */, 0C84FCE129E4B41D00B0DFE4 /* SourceFilterView.swift in Sources */, 0CD5E78928CD932B001BF684 /* DisabledAppearance.swift in Sources */, - 0CA148DB288903F000DE2211 /* NavView.swift in Sources */, 0CA3B23C28C2AA5600616D3A /* Bookmark+CoreDataClass.swift in Sources */, 0CD4030A29DA01B6008D9F03 /* PluginInfoMetaView.swift in Sources */, 0C750745289B003E004B3906 /* SourceRssParser+CoreDataProperties.swift in Sources */, diff --git a/Ferrite/Views/CommonViews/NavView.swift b/Ferrite/Views/CommonViews/NavView.swift deleted file mode 100644 index a0209de..0000000 --- a/Ferrite/Views/CommonViews/NavView.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// NavView.swift -// Ferrite -// -// Created by Brian Dashore on 7/4/22. -// Contributed by Mantton -// -// A wrapper that switches between NavigationStack and the legacy NavigationView -// - -import SwiftUI - -struct NavView: View { - @ViewBuilder var content: Content - - var body: some View { - NavigationStack { - content - } - } -} diff --git a/Ferrite/Views/ComponentViews/Plugin/PluginInfoView.swift b/Ferrite/Views/ComponentViews/Plugin/PluginInfoView.swift index a90d458..449d4c1 100644 --- a/Ferrite/Views/ComponentViews/Plugin/PluginInfoView.swift +++ b/Ferrite/Views/ComponentViews/Plugin/PluginInfoView.swift @@ -13,7 +13,7 @@ struct PluginInfoView: View { @Binding var selectedPlugin: P? var body: some View { - NavView { + NavigationStack { List { if let selectedPlugin { PluginInfoMetaView(selectedPlugin: selectedPlugin) diff --git a/Ferrite/Views/ComponentViews/Settings/Kodi/KodiEditorView.swift b/Ferrite/Views/ComponentViews/Settings/Kodi/KodiEditorView.swift index de33bb0..5d43c58 100644 --- a/Ferrite/Views/ComponentViews/Settings/Kodi/KodiEditorView.swift +++ b/Ferrite/Views/ComponentViews/Settings/Kodi/KodiEditorView.swift @@ -25,7 +25,7 @@ struct KodiEditorView: View { @State private var errorAlertText: String = "" var body: some View { - NavView { + NavigationStack { Form { Group { Section( diff --git a/Ferrite/Views/ComponentViews/Settings/PluginList/PluginListEditorView.swift b/Ferrite/Views/ComponentViews/Settings/PluginList/PluginListEditorView.swift index d317b4f..51356e4 100644 --- a/Ferrite/Views/ComponentViews/Settings/PluginList/PluginListEditorView.swift +++ b/Ferrite/Views/ComponentViews/Settings/PluginList/PluginListEditorView.swift @@ -25,7 +25,7 @@ struct PluginListEditorView: View { @State private var loadedSelectedList = false var body: some View { - NavView { + NavigationStack { Form { TextField("Enter URL", text: $pluginListUrl) .disableAutocorrection(true) diff --git a/Ferrite/Views/ContentView.swift b/Ferrite/Views/ContentView.swift index 5f2a4cd..f46f7d9 100644 --- a/Ferrite/Views/ContentView.swift +++ b/Ferrite/Views/ContentView.swift @@ -27,7 +27,7 @@ struct ContentView: View { @State private var dismissAction: () -> Void = {} var body: some View { - NavView { + NavigationStack { List { SearchResultsView(searchText: $searchText) } diff --git a/Ferrite/Views/LibraryView.swift b/Ferrite/Views/LibraryView.swift index 03fab5b..59021bf 100644 --- a/Ferrite/Views/LibraryView.swift +++ b/Ferrite/Views/LibraryView.swift @@ -30,7 +30,7 @@ struct LibraryView: View { @State private var searchText: String = "" var body: some View { - NavView { + NavigationStack { ZStack { switch navModel.libraryPickerSelection { case .bookmarks: diff --git a/Ferrite/Views/LoginWebView.swift b/Ferrite/Views/LoginWebView.swift index c54ea07..8fbc16b 100644 --- a/Ferrite/Views/LoginWebView.swift +++ b/Ferrite/Views/LoginWebView.swift @@ -12,7 +12,7 @@ struct LoginWebView: View { var url: URL var body: some View { - NavView { + NavigationStack { WebView(url: url) .navigationTitle("Sign in") .navigationBarTitleDisplayMode(.inline) diff --git a/Ferrite/Views/PluginsView.swift b/Ferrite/Views/PluginsView.swift index dcd87b3..870505c 100644 --- a/Ferrite/Views/PluginsView.swift +++ b/Ferrite/Views/PluginsView.swift @@ -30,7 +30,7 @@ struct PluginsView: View { @State private var searchText: String = "" var body: some View { - NavView { + NavigationStack { ZStack { if checkedForPlugins { switch navModel.pluginPickerSelection { diff --git a/Ferrite/Views/SettingsView.swift b/Ferrite/Views/SettingsView.swift index f123017..980c098 100644 --- a/Ferrite/Views/SettingsView.swift +++ b/Ferrite/Views/SettingsView.swift @@ -42,7 +42,7 @@ struct SettingsView: View { @FocusState private var focusedField: Field? var body: some View { - NavView { + NavigationStack { Form { Section(header: InlineHeader("Debrid services")) { ForEach(debridManager.debridSources, id: \.id) { (debridSource: DebridSource) in diff --git a/Ferrite/Views/SheetViews/ActionChoiceView.swift b/Ferrite/Views/SheetViews/ActionChoiceView.swift index 5ed9e27..ba36d98 100644 --- a/Ferrite/Views/SheetViews/ActionChoiceView.swift +++ b/Ferrite/Views/SheetViews/ActionChoiceView.swift @@ -29,7 +29,7 @@ struct ActionChoiceView: View { @State private var showMagnetCopyAlert = false var body: some View { - NavView { + NavigationStack { Form { Section(header: InlineHeader("Now Playing")) { VStack(alignment: .leading, spacing: 5) { diff --git a/Ferrite/Views/SheetViews/BatchChoiceView.swift b/Ferrite/Views/SheetViews/BatchChoiceView.swift index f315430..44e9913 100644 --- a/Ferrite/Views/SheetViews/BatchChoiceView.swift +++ b/Ferrite/Views/SheetViews/BatchChoiceView.swift @@ -19,9 +19,8 @@ struct BatchChoiceView: View { @State private var searchText: String = "" - // TODO: Make this generic for an IA protocol var body: some View { - NavView { + NavigationStack { List { ForEach(debridManager.selectedDebridItem?.files ?? [], id: \.self) { file in if file.name.lowercased().contains(searchText.lowercased()) || searchText.isEmpty {