From 6b0f90178b68b60c6fb117b732a069e067a3ef56 Mon Sep 17 00:00:00 2001 From: kingbri Date: Wed, 11 Jan 2023 12:23:19 -0500 Subject: [PATCH] Backport: Update alert The alert backport was updated for simplicity. Reflect this inside Ferrite's source code. Signed-off-by: kingbri --- Ferrite/Views/CommonViews/AlertButton.swift | 4 ++-- Ferrite/Views/CommonViews/Backport.swift | 4 ++-- .../ComponentViews/Settings/SourceListEditorView.swift | 3 +-- Ferrite/Views/MainView.swift | 9 +++------ 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Ferrite/Views/CommonViews/AlertButton.swift b/Ferrite/Views/CommonViews/AlertButton.swift index 664317a..e572879 100644 --- a/Ferrite/Views/CommonViews/AlertButton.swift +++ b/Ferrite/Views/CommonViews/AlertButton.swift @@ -29,9 +29,9 @@ struct AlertButton: Identifiable { } // Used for buttons with no action - init(_ label: String = "Cancel", role: Role? = nil) { + init(_ label: String? = nil, role: Role? = nil) { id = UUID() - self.label = label + self.label = label ?? (role == .cancel ? "Cancel" : "OK") action = {} self.role = role } diff --git a/Ferrite/Views/CommonViews/Backport.swift b/Ferrite/Views/CommonViews/Backport.swift index d57643a..ade49c0 100644 --- a/Ferrite/Views/CommonViews/Backport.swift +++ b/Ferrite/Views/CommonViews/Backport.swift @@ -20,7 +20,7 @@ extension View { } extension Backport where Content: View { - @ViewBuilder func alert(isPresented: Binding, title: String, message: String?, buttons: [AlertButton]) -> some View { + @ViewBuilder func alert(isPresented: Binding, title: String, message: String?, buttons: [AlertButton] = []) -> some View { if #available(iOS 15, *) { content .alert( @@ -55,7 +55,7 @@ extension Backport where Content: View { return Alert( title: Text(title), message: message.map { Text($0) } ?? nil, - dismissButton: buttons[0].toActionButton() + dismissButton: buttons[safe: 0].map { $0.toActionButton() } ?? .cancel() ) } } diff --git a/Ferrite/Views/ComponentViews/Settings/SourceListEditorView.swift b/Ferrite/Views/ComponentViews/Settings/SourceListEditorView.swift index a7fd295..81a4c3b 100644 --- a/Ferrite/Views/ComponentViews/Settings/SourceListEditorView.swift +++ b/Ferrite/Views/ComponentViews/Settings/SourceListEditorView.swift @@ -35,8 +35,7 @@ struct SourceListEditorView: View { .backport.alert( isPresented: $sourceManager.showUrlErrorAlert, title: "Error", - message: sourceManager.urlErrorAlertText, - buttons: [AlertButton("OK")] + message: sourceManager.urlErrorAlertText ) .navigationTitle("Editing source list") .navigationBarTitleDisplayMode(.inline) diff --git a/Ferrite/Views/MainView.swift b/Ferrite/Views/MainView.swift index 1a4da16..d36ff6b 100644 --- a/Ferrite/Views/MainView.swift +++ b/Ferrite/Views/MainView.swift @@ -118,10 +118,7 @@ struct MainView: View { title: "Backup restored", message: backupManager.backupSourceNames.isEmpty ? "No sources need to be reinstalled" : - "Reinstall sources: \(backupManager.backupSourceNames.joined(separator: ", "))", - buttons: [ - .init("OK") {} - ] + "Reinstall sources: \(backupManager.backupSourceNames.joined(separator: ", "))" ) // Updater alert .backport.alert( @@ -129,14 +126,14 @@ struct MainView: View { title: "Update available", message: "Ferrite \(releaseVersionString) can be downloaded. \n\n This alert can be disabled in Settings.", buttons: [ - AlertButton("Download") { + .init("Download") { guard let releaseUrl = URL(string: releaseUrlString) else { return } UIApplication.shared.open(releaseUrl) }, - AlertButton(role: .cancel) + .init(role: .cancel) ] ) .overlay {