From c486a62b508342250f7bb5d986df5b321bec6ffa Mon Sep 17 00:00:00 2001 From: Fabian Thies Date: Mon, 12 Dec 2022 19:20:10 +0100 Subject: [PATCH] [ADD] Backported dismiss() environment variable to let views dismiss themselves --- AltStore/View Extensions/EnvironmentValues.swift | 16 ++++++++++++++++ AltStore/Views/Browse/ConfirmAddSourceView.swift | 12 +----------- AltStore/Views/Browse/SourcesView.swift | 7 ++++--- 3 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 AltStore/View Extensions/EnvironmentValues.swift diff --git a/AltStore/View Extensions/EnvironmentValues.swift b/AltStore/View Extensions/EnvironmentValues.swift new file mode 100644 index 00000000..3355bd3c --- /dev/null +++ b/AltStore/View Extensions/EnvironmentValues.swift @@ -0,0 +1,16 @@ +// +// EnvironmentValues.swift +// SideStore +// +// Created by Fabian Thies on 29.11.22. +// Copyright © 2022 SideStore. All rights reserved. +// + +import SwiftUI + +@available(iOS 14.0, *) +extension EnvironmentValues { + var dismiss: () -> Void { + { presentationMode.wrappedValue.dismiss() } + } +} diff --git a/AltStore/Views/Browse/ConfirmAddSourceView.swift b/AltStore/Views/Browse/ConfirmAddSourceView.swift index e295ae58..8c7be5e3 100644 --- a/AltStore/Views/Browse/ConfirmAddSourceView.swift +++ b/AltStore/Views/Browse/ConfirmAddSourceView.swift @@ -65,18 +65,8 @@ struct ConfirmAddSourceView: View { confirmationHandler(fetchedSource) } label: { Label(title: { Text("Add Source") }, icon: { Image(systemName: "plus") }) - .multilineTextAlignment(.center) - .foregroundColor(.white) - .padding() - .frame( - maxWidth: .infinity, - alignment: .bottomLeading - ) - .background( - RoundedRectangle(cornerRadius: 10) - .foregroundColor(Color.accentColor) - ) } + .buttonStyle(FilledButtonStyle()) .padding() } .background(Color(UIColor.systemGroupedBackground).ignoresSafeArea()) diff --git a/AltStore/Views/Browse/SourcesView.swift b/AltStore/Views/Browse/SourcesView.swift index 9c9cfd31..a7f6b320 100644 --- a/AltStore/Views/Browse/SourcesView.swift +++ b/AltStore/Views/Browse/SourcesView.swift @@ -12,6 +12,9 @@ import CoreData struct SourcesView: View { + @Environment(\.dismiss) + private var dismiss + @Environment(\.managedObjectContext) var managedObjectContext @@ -102,9 +105,7 @@ struct SourcesView: View { } ToolbarItem(placement: .navigationBarTrailing) { - SwiftUI.Button { - self.isShowingAddSourceAlert = false - } label: { + SwiftUI.Button(action: self.dismiss) { Text("Done").bold() } }