Reduces reliance on presentationMode to dismiss

Bindings are passed instead and this fixes issues with Add Web (etc) only appearing once.
This commit is contained in:
Stuart Breckenridge
2020-08-14 00:04:39 +08:00
parent 7aab8c87fb
commit 0a51508abf
6 changed files with 62 additions and 51 deletions

View File

@@ -12,8 +12,8 @@ import RSCore
struct AddFolderView: View {
@Environment(\.presentationMode) private var presentationMode
@ObservedObject private var viewModel = AddFolderModel()
@Binding var isPresented: Bool
var body: some View {
#if os(iOS)
@@ -21,16 +21,14 @@ struct AddFolderView: View {
.onReceive(viewModel.$shouldDismiss, perform: {
dismiss in
if dismiss == true {
presentationMode
.wrappedValue
.dismiss()
isPresented = false
}
})
#else
macForm
.onReceive(viewModel.$shouldDismiss, perform: { dismiss in
if dismiss == true {
presentationMode.wrappedValue.dismiss()
isPresented = false
}
})
#endif
@@ -50,7 +48,7 @@ struct AddFolderView: View {
.navigationBarTitleDisplayMode(.inline)
.navigationBarItems(
leading:Button("Cancel", action: {
presentationMode.wrappedValue.dismiss()
isPresented = false
}
)
.help("Cancel Adding Folder"),
@@ -113,7 +111,7 @@ struct AddFolderView: View {
}
Spacer()
Button("Cancel", action: {
presentationMode.wrappedValue.dismiss()
isPresented = false
})
.help("Cancel Adding Folder")
@@ -125,9 +123,3 @@ struct AddFolderView: View {
}
}
}
struct AddFolderView_Previews: PreviewProvider {
static var previews: some View {
AddFolderView()
}
}