Source code for the WriteFreely SwiftUI app for iOS, iPadOS, and macOS
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

33 строки
1007 B

  1. import SwiftUI
  2. import WriteFreely
  3. struct AccountModel {
  4. @AppStorage(WFDefaults.isLoggedIn, store: UserDefaults.shared) var isLoggedIn: Bool = false
  5. private let defaults = UserDefaults.shared
  6. var server: String = ""
  7. var username: String = ""
  8. private(set) var user: WFUser?
  9. mutating func login(_ user: WFUser) {
  10. self.user = user
  11. self.username = user.username ?? ""
  12. self.isLoggedIn = true
  13. defaults.set(user.username, forKey: WFDefaults.usernameStringKey)
  14. defaults.set(server, forKey: WFDefaults.serverStringKey)
  15. }
  16. mutating func logout() {
  17. self.user = nil
  18. self.isLoggedIn = false
  19. defaults.removeObject(forKey: WFDefaults.usernameStringKey)
  20. defaults.removeObject(forKey: WFDefaults.serverStringKey)
  21. }
  22. mutating func restoreState() {
  23. server = defaults.string(forKey: WFDefaults.serverStringKey) ?? ""
  24. username = defaults.string(forKey: WFDefaults.usernameStringKey) ?? ""
  25. }
  26. }