Page MenuHomeMusing Studio

No OneTemporary

diff --git a/Shared/Account/AccountLogoutView.swift b/Shared/Account/AccountLogoutView.swift
index 9f69a50..0ff1c77 100644
--- a/Shared/Account/AccountLogoutView.swift
+++ b/Shared/Account/AccountLogoutView.swift
@@ -1,89 +1,80 @@
import SwiftUI
struct AccountLogoutView: View {
@EnvironmentObject var model: WriteFreelyModel
@State private var isPresentingLogoutConfirmation: Bool = false
@State private var editedPostsWarningString: String = ""
var body: some View {
#if os(iOS)
VStack {
Spacer()
VStack {
Text("Logged in as \(model.account.username)")
Text("on \(model.account.server)")
}
Spacer()
Button(action: logoutHandler, label: {
Text("Log Out")
})
}
.actionSheet(isPresented: $isPresentingLogoutConfirmation, content: {
ActionSheet(
title: Text("Log Out?"),
message: Text("\(editedPostsWarningString)You won't lose any local posts. Are you sure?"),
buttons: [
.destructive(Text("Log Out"), action: {
model.logout()
}),
.cancel()
]
)
})
#else
VStack {
Spacer()
VStack {
Text("Logged in as \(model.account.username)")
Text("on \(model.account.server)")
}
Spacer()
Button(action: logoutHandler, label: {
Text("Log Out")
})
}
- .sheet(isPresented: $isPresentingLogoutConfirmation) {
- VStack {
- Text("Log Out?")
- .font(.title)
- Text("\(editedPostsWarningString)You won't lose any local posts. Are you sure?")
- HStack {
- Button(action: model.logout, label: {
- Text("Log Out")
- })
- Button(action: {
- self.isPresentingLogoutConfirmation = false
- }, label: {
- Text("Cancel")
- }).keyboardShortcut(.cancelAction)
- }
- }
+ .alert(isPresented: $isPresentingLogoutConfirmation) {
+ Alert(
+ title: Text("Log Out?"),
+ message: Text("\(editedPostsWarningString)You won't lose any local posts. Are you sure?"),
+ primaryButton: .cancel(Text("Cancel"), action: { self.isPresentingLogoutConfirmation = false }),
+ secondaryButton: .destructive(Text("Log Out"), action: model.logout )
+ )
}
#endif
}
func logoutHandler() {
let request = WFAPost.createFetchRequest()
request.predicate = NSPredicate(format: "status == %i", 1)
do {
let editedPosts = try LocalStorageManager.persistentContainer.viewContext.fetch(request)
if editedPosts.count == 1 {
editedPostsWarningString = "You'll lose unpublished changes to \(editedPosts.count) edited post. "
}
if editedPosts.count > 1 {
editedPostsWarningString = "You'll lose unpublished changes to \(editedPosts.count) edited posts. "
}
} catch {
print("Error: failed to fetch cached posts")
}
self.isPresentingLogoutConfirmation = true
}
}
struct AccountLogoutView_Previews: PreviewProvider {
static var previews: some View {
AccountLogoutView()
.environmentObject(WriteFreelyModel())
}
}

File Metadata

Mime Type
text/x-diff
Expires
Thu, Mar 6, 3:13 AM (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3165163

Event Timeline