From 47ef72bf13a9e50a97a9cd65447f5771fe1b589c Mon Sep 17 00:00:00 2001 From: kingbri Date: Wed, 14 Dec 2022 16:33:18 -0500 Subject: [PATCH] MagnetChoiceView: Fix titles Titles weren't cleared on sheet dismiss which caused conflicts between batches and single files. Fix this. Signed-off-by: kingbri --- Ferrite/ViewModels/NavigationViewModel.swift | 4 ++-- .../ComponentViews/Library/HistoryButtonView.swift | 4 ++-- .../SearchResult/SearchResultButtonView.swift | 2 +- Ferrite/Views/SheetViews/MagnetChoiceView.swift | 12 ++++++++---- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Ferrite/ViewModels/NavigationViewModel.swift b/Ferrite/ViewModels/NavigationViewModel.swift index 1767d93..e1a7cf3 100644 --- a/Ferrite/ViewModels/NavigationViewModel.swift +++ b/Ferrite/ViewModels/NavigationViewModel.swift @@ -35,8 +35,8 @@ class NavigationViewModel: ObservableObject { @Published var selectedSearchResult: SearchResult? // For giving information in magnet choice sheet - @Published var selectedTitle: String? - @Published var selectedBatchTitle: String? + @Published var selectedTitle: String = "" + @Published var selectedBatchTitle: String = "" @Published var hideNavigationBar = false diff --git a/Ferrite/Views/ComponentViews/Library/HistoryButtonView.swift b/Ferrite/Views/ComponentViews/Library/HistoryButtonView.swift index c05f1fd..777b0ed 100644 --- a/Ferrite/Views/ComponentViews/Library/HistoryButtonView.swift +++ b/Ferrite/Views/ComponentViews/Library/HistoryButtonView.swift @@ -16,8 +16,8 @@ struct HistoryButtonView: View { var body: some View { Button { - navModel.selectedTitle = entry.name - navModel.selectedBatchTitle = entry.subName + navModel.selectedTitle = entry.name ?? "" + navModel.selectedBatchTitle = entry.subName ?? "" if let url = entry.url { if url.starts(with: "https://") { diff --git a/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift b/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift index 5943e48..9f4995e 100644 --- a/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift +++ b/Ferrite/Views/ComponentViews/SearchResult/SearchResultButtonView.swift @@ -23,7 +23,7 @@ struct SearchResultButtonView: View { Button { if debridManager.currentDebridTask == nil { navModel.selectedSearchResult = result - navModel.selectedTitle = result.title + navModel.selectedTitle = result.title ?? "" switch debridManager.matchSearchResult(result: result) { case .full: diff --git a/Ferrite/Views/SheetViews/MagnetChoiceView.swift b/Ferrite/Views/SheetViews/MagnetChoiceView.swift index 0bf9cfb..dfef583 100644 --- a/Ferrite/Views/SheetViews/MagnetChoiceView.swift +++ b/Ferrite/Views/SheetViews/MagnetChoiceView.swift @@ -25,12 +25,12 @@ struct MagnetChoiceView: View { Form { Section(header: "Now Playing") { VStack(alignment: .leading, spacing: 5) { - Text(navModel.selectedTitle ?? "No title") + Text(navModel.selectedTitle) .font(.callout) - .lineLimit(navModel.selectedBatchTitle == nil ? .max : 1) + .lineLimit(navModel.selectedBatchTitle.isEmpty ? .max : 1) - if let batchTitle = navModel.selectedBatchTitle { - Text(batchTitle) + if !navModel.selectedBatchTitle.isEmpty { + Text(navModel.selectedBatchTitle) .foregroundColor(.gray) .font(.subheadline) } @@ -109,6 +109,8 @@ struct MagnetChoiceView: View { } .onDisappear { debridManager.downloadUrl = "" + navModel.selectedTitle = "" + navModel.selectedBatchTitle = "" } .navigationTitle("Link actions") .navigationBarTitleDisplayMode(.inline) @@ -116,6 +118,8 @@ struct MagnetChoiceView: View { ToolbarItem(placement: .navigationBarTrailing) { Button("Done") { debridManager.downloadUrl = "" + navModel.selectedTitle = "" + navModel.selectedBatchTitle = "" presentationMode.wrappedValue.dismiss() }